소프트웨어 RAID(raid1)를 사용하는 서버가 있고 루트 파티션의 볼륨을 늘려야 합니다. Google에서 검색했지만 이를 수행하는 방법을 찾지 못했습니다. 2x1TB RAID1이 있습니다.
내 df -h:
Filesystem Size Used Avail Use% Mounted on
rootfs 20G 20G 0 100% /
/dev/root 20G 20G 0 100% /,
devtmpfs 3.9G 4.0K 3.9G 1% /dev
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 788M 256K 788M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.9G 0 3.9G 0% /run/shm
none 100M 0 100M 0% /run/user
overflow 1.0M 4.0K 1020K 1% /tmp
/dev/md3 898G 72M 852G 1% /home
내 fdisk -l:
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000e1568
Device Boot Start End Blocks Id System
/dev/sdb1 * 4096 40962047 20478976 fd Linux RAID autodetect
/dev/sdb2 40962048 42008575 523264 82 Linux swap / Solaris
/dev/sdb3 42008576 1953517567 955754496 fd Linux RAID autodetect
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000a0d60
Device Boot Start End Blocks Id System
/dev/sda1 * 4096 40962047 20478976 fd Linux RAID autodetect
/dev/sda2 40962048 42008575 523264 82 Linux swap / Solaris
/dev/sda3 42008576 1953517567 955754496 fd Linux RAID autodetect
Disk /dev/md3: 978.7 GB, 978692538368 bytes
2 heads, 4 sectors/track, 238938608 cylinders, total 1911508864 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Disk /dev/md3 doesn't contain a valid partition table
Disk /dev/md1: 21.0 GB, 20970405888 bytes
2 heads, 4 sectors/track, 5119728 cylinders, total 40957824 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Disk /dev/md1 doesn't contain a valid partition table
답변1
라이브 시스템에서 이 작업을 수행하는 것은 매우 까다롭습니다. 귀하가 선택한 조직은 확장과 관련하여 매우 융통성이 없습니다.
내 제안은 루트 파티션의 일부 큰 덩어리를 이동 /home
하고 심볼릭 링크를 만드는 것입니다.
실제로 크기를 조정하려면 다음 방법을 사용할 수 있습니다. 시스템이 부팅되지 않거나(운이 좋은 경우) 데이터가 손실될 위험(운이 없는 경우)이 발생할 수 있으므로 먼저 가상 머신에서 연습하는 것이 좋습니다. 백업이 최신 상태인지 확인하세요.
sshd를 제외한 모든 서비스를 중지합니다. RAID의 동기화를 해제하면 현재
/
또는 이후에/home
파일에 수정된 모든 내용이 손실됩니다.RAID 구성 요소를 수동으로 종료
/dev/sdb
하고 어레이에서 제거합니다. 또한 교환을 끄십시오/dev/sdb2
.mdadm /dev/md1 -f /dev/sdb1 mdadm /dev/md1 -r /dev/sdb1 mdadm /dev/md3 -f /dev/sdb3 mdadm /dev/md3 -r /dev/sdb3 swapoff /dev/sdb2
재분할
/dev/sdb
. 보다 유연한 파티셔닝 방식인 LVM을 사용하는 것이 좋습니다. 이렇게 하면 나중에 크기를 조정하기가 훨씬 쉬워집니다. 전체 디스크에 걸쳐 있는 RAID 1 볼륨을 생성합니다(스왑 공간 제외). 나는 RAID의 새 볼륨이 지금도/dev/sdb1
여전히/dev/sdb2
스왑 공간이라고 가정합니다. 볼륨의 순서는 중요하지 않습니다./dev/sdb1
이제 단일 구성 요소가 RAID 1 볼륨의 일부를 구성하는 데 사용됩니다.mdadm --create /dev/md4 -l 1 -n 2 missing /dev/sdb2
새 RAID 볼륨을좌심실 용적물리 볼륨을 만들고 이를 포함하는 볼륨 그룹을 생성합니다.
pvcreate /dev/md4 vgcreate main /dev/md4
필요한 크기로 루트 논리 볼륨을 생성하고 나머지 여유 공간에 걸쳐 있는 기본 LV를 생성합니다.
lvcreate --size 40g -n root main lvcreate --size 100%FREE -n home main
/dev/mapper/main_root
및 에서 파일 시스템을 생성합니다/dev/mapper/main_home
. 또한 실행합니다mkswap /dev/sdb2
.새 파일 시스템을 마운트하고 거기에 데이터를 복사합니다.
mkdir /media/new_root /media/new_home mount /dev/mapper/main_root /media/new_root mount /dev/mapper/main_home /media/new_home cp -ax / /media/new_root cp -ax / /media/new_home
chroot /media/new_root
스토리지 구성을 실행 하고 새 조직으로 업데이트합니다. 에/etc/fstab
설치하려면 업데이트해야 합니다 . 또한 스왑 항목을 주석 처리합니다 . 또한 부트로더에 따라 새 시스템을 부팅 가능하게 만들어야 합니다. LILO 및 Grub2는 LVM에서 부팅할 수 있지만 Grub 0.9x는 부팅할 수 없습니다./dev/mapper/main_root
/home
/dev/sda2
새 시스템으로 재부팅합니다. 가상 머신에서 모든 단계를 완료하고 제대로 작동하는지 확인한 경우에만 이 작업을 수행하세요!
재파티셔닝
/dev/sda
과 동일합니다/dev/sdb
.mkswap /dev/sda2
그런 다음swapon /dev/sda2
. 이제/dev/sda2
항목의 주석 처리를 제거할 수 있습니다/etc/fstab
.새로운 RAID1 어레이에 추가
/dev/sda1
하고 백그라운드에서 동기화되도록 하세요.mdadm --add /dev/md4 /dev/sda1