
우리 회사 표준은 CentOS(LVM을 선호하는 것 같습니다)이고 저는 주로 LVM이 아닌 배경에서 왔기 때문에 이 문제에 대해 새로운 지평을 열고 있습니다.
오래된 컴퓨터를 로그 서버로 물려받았고 CentOS를 다시 설치해야 했습니다. 마더보드의 EHCI 문제로 인해(일반 설치 DVD 또는 LiveCD GUI 설치를 통해) CentOS 6.3을 설치할 수 있는 유일한 방법은 LiveCD 텍스트 설치였습니다. LiveCD 텍스트 설치에서는 디스크에 나만의 파티션 설정을 지정할 수 없습니다. LVM만 설치하고 로그 서버에 잘못된 공간 할당을 제공했습니다...
[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
[mpenning@someHost ~]$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
50397 2167 47719 5% /
tmpfs 1850 0 1850 0% /dev/shm
/dev/md127p1 485 65 395 15% /boot
/dev/mapper/vg_livecd-lv_home
227001 188 215283 1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
--- Volume group ---
VG Name vg_livecd
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 278.96 GiB
PE Size 4.00 MiB
Total PE 71415
Alloc PE / Size 71415 / 278.96 GiB
Free PE / Size 0 / 0
VG UUID 8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU
[mpenning@someHost ~]$
두 가지 질문:
/
257398개의 1-M 블록으로 늘리고/home
20000개의 1-M 블록으로 줄여야 하는 경우 재부팅하지 않고 이 작업을 수행할 수 있습니까? 그렇다면 이를 수행하기 위한 구체적인 명령 시퀀스는 무엇입니까?- 전용 파티션을 추가하고 싶은 경우
/var
전체 재설치 없이 어떻게 해야 합니까?
답변1
/를 257398개의 1-M 블록으로 늘리고 /home을 20000개의 1-M 블록으로 줄여야 하는 경우 재부팅하지 않고 이 작업을 수행할 수 있습니까? 그렇다면 이를 수행하는 구체적인 명령 순서는 무엇입니까?
대략 280GB의 사용 가능한 공간이 있으며 그 중 50GB는 '/'에 할당되고 230GB는 에 할당되었습니다 /home
. 이는 사용 가능한 모든 공간을 나타내므로 먼저 무언가를 확보해야 합니다. 다음은 몇 가지 옵션입니다.
에 데이터를 배치하지 않은 경우 /home
기존 파일 시스템을 버리고 적절한 크기로 다시 만드는 것이 가장 쉽습니다.
마운트 해제
/home
:# umount /home
논리 볼륨(LV)의 크기를 20GB로 줄입니다.
# lvreduce -L 20G /dev/vg_livecd/lv_home
파일 시스템 을 다시 만듭니다
/home
.# mke2fs -j -m0 /dev/vg_livecd/lv_home
그리고 다시 마운트하세요
/home
:# mount /home
가능하다수축 /home
, 버리는 것이 아니라 조금 더 까다로울 수 있습니다.
마운트 해제
/home
:# umount /home
fsck
파일 시스템. 이는 아마도 다음 단계에서 필요할 것입니다.# fsck /dev/vg_livecd/lv_home
파일 시스템 크기를 조정합니다.
# resize2fs /dev/vg_livecd/lv_home 19G
LV를 줄입니다:
# lvreduce -L 20G /dev/vg_livecd/lv_home
LV보다 파일 시스템을 조금 더 줄였다는 것을 알 수 있을 것입니다. 같은 방식으로 계산하는지 기억이 나지 않기 때문에 조금 여유를 두려고 노력합니다.
두 경우 모두 현재 볼륨 그룹에는 약 210GB의 여유 공간이 있습니다. 이제 루트 파일 시스템의 크기를 늘릴 수 있습니다:
루트 LV의 크기를 늘립니다.
# lvresize -L260G /dev/vg_livecd/lv_root
파일 시스템의 크기를 늘리십시오.
# resize2fs /dev/vg_livecd/lv_root
이 답변에서 사용하는 반올림으로 인해 260G보다 약간 작은 숫자를 사용해야 할 수도 있습니다. 또한 최신 버전의 LVM 유틸리티에는 파일 시스템의 크기를 조정하는 기능이 포함되어 있지만 저는 해당 옵션을 사용할 수 있기 전부터 이 작업을 수행해 왔습니다. 따라서 이 유틸리티가 어떻게 작동하는지 정확히 알 수는 없습니다.
전용 /var 파티션을 추가하려는 경우 전체 재설치 없이 어떻게 해야 합니까?
첫째, 단일 사용자 모드에서 이 작업을 수행하려고 할 것입니다. 그렇지 않으면 실행 중인 프로세스에 파일이 열려 있어 /var
교체하기가 어려워질 수 있습니다. 라고 한...
다시 한 번 여유 공간이 필요합니다. 이전 단계에서 여유 공간을 모두 사용하는 대신 몇 GB의 여유 공간을 남겨두면 다음과 같이 할 수 있습니다.
새 논리 볼륨을 생성합니다.
# lvcreate -n lv_var -L 10G /dev/vg0
새 파일 시스템을 만듭니다.
# mke2fs -j -m0 /dev/vg_livecd/lv_var
다음 줄을 추가하여
/etc/fstab
새 LV를 마운트하도록 편집합니다 ./var
/dev/vg_livcde/lv_var /var ext4 defaults 1 2
하지만 아직 마운트하지 마세요!
편리한 위치에 새 파일 시스템을 마운트합니다.
# mount /dev/vg_livecd/lv_var /mnt
다음 내용을 복사하세요
/var
.# rsync -a /var/ /mnt/
/var
다음 디렉터리 로 이름을 바꾸고/var.old
새 디렉터리를 만듭니다.# mv /var /var.old # mkdir /var
다음 위치에 새 LV를 마운트하세요
/var
.# umount /mnt # 마운트 /var
그리고 계속 부팅하세요. 모든 것이 올바르게 작동하고 만족스러우면 삭제할 수 있습니다
/var.old
.
답변2
고려하면:
- 못생긴 VG 이름
- 사용 사례에 대한 잘못된 공간 할당 및 Larsks에서 자세히 설명하는 절차의 부담
- 다시 설치해야 할 경우를 대비해 이 모든 작업을 다시 수행해야 한다는 사실
AFAIC, 원하는 구성을 한 번에 재현 가능한 방식으로 얻으려면 netinstall/kickstart를 시도하겠습니다.
내 2cts