토요일에 하드 드라이브를 다시 파티션해야 합니다. 내 서버에는 72GB의 하드 드라이브 공간이 있는데 이는 많지 않습니다.
현재 시스템 파티션은 다음과 같습니다.
파티션 크기:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_web-lv_root
50G 5.8G 41G 13% /
tmpfs 1.9G 16K 1.9G 1% /dev/shm
/dev/cciss/c0d0p1 485M 93M 367M 21% /boot
/dev/mapper/vg_web-lv_home
14G 8.7G 4.1G 68% /home
인덱스 노드:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg_web-lv_root
3.2M 125K 3.1M 4% /
tmpfs 179K 5 179K 1% /dev/shm
/dev/cciss/c0d0p1 126K 50 125K 1% /boot
/dev/mapper/vg_web-lv_home
869K 559K 311K 65% /home
/home 디렉토리를 ± 20 - 30GB 늘리고 루트 디렉토리(/)를 줄이고 싶습니다.
340,000개의 파일이 포함된 디렉토리를 삭제하기 전에 내 서버에 Inode가 부족해졌습니다. 하루에 ± 15,000개의 작은 1kb 파일을 받습니다.
이제 토요일에 어떤 문제도 발생하지 않도록 하고 싶습니다. 하드 드라이브를 다시 설치/포맷하고 시스템을 다시 설치해야 합니까? 아니면 하드 드라이브를 다시 파티션해야 하며 어떻게 해야 합니까?
답변1
하드 드라이브를 다시 설치하거나 포맷할 필요가 없습니다.
이 질문에 대한 대답은 파일 시스템, 특히 파일 시스템이 온라인 크기 조정을 지원하는 경우에 따라 다릅니다. 모든 파티션에서 ext3/ext4를 사용하고 있다고 가정하지만, 그렇지 않은 경우 더 자세한 내용으로 질문을 편집해야 합니다.
루트 파티션을 줄여야 하므로 예를 들어 시스템을 부팅하려면 Live CD나 Rescue CD를 사용해야 합니다.시스템 복구 디스크
참고: 이 작업을 시도하기 전에 중요한 데이터를 모두 백업하십시오. 파티션 크기를 조정할 때 항상 모든 데이터가 손실될 수 있다고 가정하십시오.
이는 파티션을 50GB에서 30GB로 줄이는 예입니다.
파일 시스템을 축소한 다음 LVM을 축소합니다.
파일 시스템을 확인하십시오. 이것이 실패하거나 오류가 발생하면 여기에서 계속하기 전에 Live CD로 재부팅하고 파일 시스템을 복구해야 합니다.
파티션이 마운트 해제되어야 하는지 확인하세요.
# umount /dev/mapper/vg_web-lv_root
그런 다음 파일 시스템을 확인하십시오.
# e2fsck -yc /dev/mapper/vg_web-lv_root
파일 시스템의 크기를 조정합니다. (50GB - 20GB, 최종 볼륨 30GB)
# resize2fs /dev/mapper/vg_web-lv_root 20G
논리 볼륨의 크기를 줄입니다.
# lvreduce -L 20G /dev/mapper/vg_web-lv_root
다른 파일 시스템 및 LVM 볼륨 확장
루트 파일 시스템에서 제거한 양이므로 20G를 추가하겠습니다.
# lvextend -L +20G /dev/mapper/vg_web-lv_home
# resize2fs /dev/mapper/vg_web-lv_home
답변2
크기를 추가하면 일부 inode도 추가되지만 inode 대 공간 비율은 변경되지 않습니다. 작은 파일을 많이 저장하면 나중에 다시 inode가 부족해질 수 있으므로 더 높은 inode 대 공간 비율로 볼륨을 백업하고 다시 포맷해야 할 수도 있습니다. 또한 1kb 파일이 그렇게 많으면 ext[234]가 최소 4k를 할당하여 파일당 3k를 낭비하므로 다른 파일 시스템을 사용하는 것이 좋습니다. 대안으로, inode에 파일 데이터를 인라인할 수 있는 최신 커널을 실행 중인 경우 매우 높은 inode 공간 비율과 2k inode 크기를 사용하여 이러한 1k 파일에 fs를 전용으로 지정할 수 있습니다. 이는 또한 inode와 데이터 블록 간의 조회를 제거하므로 성능도 향상됩니다.