2TB와 3.5TB가 /dev/md2
설치된 전용 서버가 있습니다 ./
/dev/md3
/home
/dev/md2
이제 500GB로 축소하고 /dev/md3
약 5TB로 늘리고 싶습니다 . 어떻게 해야 하나요? /dev/md2
크기를 500GB로 조정할 수 있었지만 하단 레이어를 /dev/sd[a,b]3
500GB로 변경하지 않고 5TB로 늘 /dev/md3
렸습니다 ./dev/sd[a,b]4
산출cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda4[0] sdb4[1]
3714478663 blocks super 1.2 [2/2] [UU]
resync=PENDING
bitmap: 28/28 pages [112KB], 65536KB chunk
md2 : active raid1 sda3[0] sdb3[1]
2111700992 blocks super 1.2 [2/2] [UU]
[====>................] resync = 22.1% (467664704/2111700992) finish=144.6min speed=189433K/sec
bitmap: 13/16 pages [52KB], 65536KB chunk
md1 : active raid1 sda2[0] sdb2[1]
523712 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
33521664 blocks super 1.2 [2/2] [UU]
관련 출력 fdisk -l
(램디스크 항목 없음):
Disk /dev/sdb: 5.5 TiB, 6001175126016 bytes, 11721045168 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
Disklabel type: gpt
Disk identifier: 26A1CC9A-D448-41DA-AB97-926922E45FAD
Device Start End Sectors Size Type
/dev/sdb1 4096 67112959 67108864 32G Linux RAID
/dev/sdb2 67112960 68161535 1048576 512M Linux RAID
/dev/sdb3 68161536 4291825663 4223664128 2T Linux RAID
/dev/sdb4 4291825664 11721045134 7429219471 3.5T Linux RAID
/dev/sdb5 2048 4095 2048 1M BIOS boot
Partition table entries are not in disk order.
Disk /dev/sda: 5.5 TiB, 6001175126016 bytes, 11721045168 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
Disklabel type: gpt
Disk identifier: CF6FA031-2CD0-4CD6-939B-E761A2871AB2
Device Start End Sectors Size Type
/dev/sda1 4096 67112959 67108864 32G Linux RAID
/dev/sda2 67112960 68161535 1048576 512M Linux RAID
/dev/sda3 68161536 4291825663 4223664128 2T Linux RAID
/dev/sda4 4291825664 11721045134 7429219471 3.5T Linux RAID
/dev/sda5 2048 4095 2048 1M BIOS boot
Partition table entries are not in disk order.
Disk /dev/md0: 32 GiB, 34326183936 bytes, 67043328 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 /dev/md1: 511.4 MiB, 536281088 bytes, 1047424 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 /dev/md2: 2 TiB, 2162381815808 bytes, 4223401984 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 /dev/md3: 3.5 TiB, 3803626151424 bytes, 7428957327 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
답변1
이미 RAID1이 있으므로 재구성 중에 디스크 장애 위험을 감수할 준비가 되어 있으면 이를 수행할 수 있습니다. 이것은 완전한 조리법이 아니므로 무엇을 하고 있는지 알아야 합니다. 그래도 데이터가 손실될 가능성이 높습니다.강하게당신을 촉구백업하기시작하기 전에. 진짜. 네, 진심이에요.
전체적인 계획은
- RAID 미러 제거
- 새로운 요구 사항을 수용하기 위해 현재 사용되지 않은 절반의 크기를 조정합니다.
- 새로운 크기의 파티션으로 새로운 RAID 하프 미러 생성
- 활성 절반의 모든 파일 시스템을 새로 크기가 조정된 절반으로 복사합니다(이 작업을 수행하기 전에 가능한 한 많은 서비스를 중지하세요).
- RAID의 새로운 절반으로 재부팅(까다로움)
- 미러의 나머지 절반을 다시 RAID에 추가
- 정돈하다
이제 이것을 라이브 시스템에 적용하기 전에 먼저 백업을 만드십시오.
실행되는 동안 몇 개의 일회성 루프백 디스크 이미지에 대한 프로세스를 시도해 보십시오. 이를 만드는 방법은 다음과 같습니다.
dd if=/dev/zero bs=1M count=200 > disk1.dat # Create a 200MB "disk"
cp -p disk1.dat disk2.dat # And another
parted disk1.dat --align optimal unit MiB --script mklabel gpt # First disk label
parted disk1.dat --align optimal unit MiB mkpart primary 1 2 # Dummy partition
parted disk1.dat --align optimal unit MiB mkpart primary 2 3
parted disk1.dat --align optimal unit MiB mkpart primary 3 150 # First useful partition
parted disk1.dat --align optimal unit MiB mkpart primary 150 100% # Second
parted disk2.dat --align optimal unit MiB --script mklabel gpt # Second disk
parted disk2.dat --align optimal unit MiB mkpart primary 1 2
parted disk2.dat --align optimal unit MiB mkpart primary 2 3
parted disk2.dat --align optimal unit MiB mkpart primary 3 150
parted disk2.dat --align optimal unit MiB mkpart primary 150 100%
d1=$(losetup --show --find --partscan disk1.dat); echo $d1 # Loop device
d2=$(losetup --show --find --partscan disk2.dat); echo $d2
mdadm --create /dev/md103 --metadata default --level=1 --raid-devices=2 ${d1}p3 ${d2}p3
mdadm --create /dev/md104 --metadata default --level=1 --raid-devices=2 ${d1}p4 ${d2}p4
mkfs -t ext4 -L 103 /dev/md103
mkfs -t ext4 -L 104 /dev/md104
mkdir /mnt/103 /mnt/104 # Mountpoints for our test filesystems
mount /dev/md103 /mnt/103
mount /dev/md104 /mnt/104
이제 일부 데이터를 복사하고 프로세스를 시도할 수 있는 /dev/md103
두 개의 RAID1 파일 시스템이 있습니다. 루프백 디스크 이미지 장치의 기본 이름으로 및를 /dev/md104
사용했습니다 .$d1
$d2
다음은 몇 가지 세부정보입니다. 백업이 완료되었나요?
RAID 미러 제거
다음 명령을 사용하면 두 개의 RAID 파티션 중 절반이 실패하도록 설정할 수 있습니다.
mdadm /dev/md103 --set-faulty ${d2}p3 --remove ${d2}p3 # sdb3 mdadm --zero-superblock ${d2}p3 mdadm /dev/md104 --set-faulty ${d2}p4 --remove ${d2}p4 # sdb4 mdadm --zero-superblock ${d2}p4
두 번째 디스크 파티션 크기 조정
선호하는 도구를 사용하여 두 번째 디스크의 파티션을 삭제하고 다시 생성하십시오. 예를 들어,
parted $d2 --align optimal unit MiB rm 3 parted $d2 --align optimal unit MiB rm 4
이 시점에서 시스템을 다시 시작해야 할 수도 있습니다. (또는 요구 사항이 충족될 수도 있습니다 .) 완료되면 루프 장치를 다시 만들고 할당하는
partprobe
것을 잊지 마십시오 .$d1
$d2
parted $d2 --align optimal unit MiB mkpart primary 3 50 parted $d2 --align optimal unit MiB mkpart primary 50 100%
새로운 크기의 파티션으로 새로운 RAID 하프 미러 생성
RAID 장치 및 파일 시스템을 생성합니다. 첫 번째 항목이 이미 배열의 일부인 것처럼 경고할 것이므로 걱정하지 마세요. 예전에는 그랬지만 지금은 그렇지 않습니다.
mdadm --create /dev/md203 --metadata default --level=1 --raid-devices=2 missing ${d2}p3 mdadm --create /dev/md204 --metadata default --level=1 --raid-devices=2 missing ${d2}p4 mkfs -t ext4 -L 203 /dev/md203 mkfs -t ext4 -L 204 /dev/md204 mkdir /mnt/203 /mnt/204 mount /dev/md203 /mnt/203 mount /dev/md204 /mnt/204
활성 절반의 모든 파일 시스템을 새로 크기가 조정된 절반으로 복사
파일 시스템이 최대한 안정적이도록 실행하기 전에 가능한 한 많은 서비스를 중지하는 것이 중요합니다.
cp -ax /mnt/103 /mnt/203 # cp -ax / /mnt/203 cp -ax /mnt/104 /mnt/204 # cp -ax /home /mnt/204
새로운 절반 RAID로 재부팅
/etc/mdadm/mdadm.conf
새 어레이로 업데이트 해야 합니다 . 이 명령을 사용하여 아직 나열되지 않은 항목을 추가하세요.mdadm --examine --scan
또한 새 루트 파일 시스템을 찾을 수 있도록
grub
시스템을 업데이트해야 합니다 .initramfs
설정에 이러한 세부정보가 제공되지 않아 안내를 드릴 수 없습니다.미러의 나머지 절반을 다시 RAID에 추가
새 하프 미러에서 RAID가 성공적으로 실행되고 있다고 확신하는 경우 원래 하프 미러를 삭제하고 새 하프 미러에 다시 추가할 수 있습니다. 여전히 파일 시스템을 마운트하면 이러한 명령이 실패합니다. (이 단계에서는 그렇지 않아야 합니다.)
mdadm --stop /dev/md103 mdadm --zero-superblock ${d1}p3 mdadm --stop /dev/md104 mdadm --zero-superblock ${d1}p4
이제 위 명령을 사용하여 나머지 디스크 파티션의 크기를 조정하십시오
parted
.새로운 하프 미러 RAID1에 새로 크기가 조정된 파티션 추가
mdadm /dev/md203 --add ${d1}p3 mdadm /dev/md204 --add ${d1}p4
정돈하다
, , 및 에서
/etc/mdadm/mdadm.conf
기존 장치를 제거합니다 . 재시작.grub
initramfs
/etc/fstab