Debian GNU/Linux 10(buster)의 LUKS 볼륨에서 ext4 파일 시스템을 사용하여 기존 RAID1 어레이를 확장하려고 합니다.
이것은 내 lsblk 디스크 레이아웃입니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 9,1T 0 disk
├─sda1 8:1 0 10M 0 part
├─sda2 8:2 0 477M 0 part
│ └─md0 9:0 0 476,7M 0 raid1 /boot
├─sda3 8:3 0 55,9G 0 part
│ └─md1 9:1 0 55,9G 0 raid1 /
└─sda4 8:4 0 7,2T 0 part
└─md2 9:2 0 7,2T 0 raid1
└─md2_crypt 253:0 0 7,2T 0 crypt /data
sdb 8:16 0 9,1T 0 disk
├─sdb1 8:17 0 10M 0 part
├─sdb2 8:18 0 477M 0 part
│ └─md0 9:0 0 476,7M 0 raid1 /boot
├─sdb3 8:19 0 55,9G 0 part
│ └─md1 9:1 0 55,9G 0 raid1 /
└─sdb4 8:20 0 7,2T 0 part
└─md2 9:2 0 7,2T 0 raid1
└─md2_crypt 253:0 0 7,2T 0 crypt /data
/data를 확장하여 남은 여유 공간을 차지하고 싶습니다. 따라서 이는 sda4, sdb4 및 md2를 확장하여 md2_crypt와 그 위에 파일 시스템을 확장하는 것을 의미합니다.
이렇게 하려고 했는데 맞는지 모르겠습니다.
- 제거/데이터(제거/데이터)
- LUKS 볼륨을 닫습니다(cryptsetup luksClose md2_crypt)
- sda4 실패 및 제거(mdadm -f /dev/md2 /dev/sda4 && mdadm -r /dev/md2 /dev/sda4)
- /dev/sda4 파티션을 삭제하고 사용 가능한 전체 디스크 공간을 차지하는 새 파티션을 만듭니다. (cgdisk /dev/sda4) 기존 것을 삭제하지 않고 늘릴 수 있을까요?
- 크기가 조정된 sda4를 다시 추가합니다(mdadm --add /dev/md2 /dev/sda4)
- 동기화 대기(mdadm --wait /dev/md2)
- sda4 대신 sdb4를 사용하여 4~6단계를 반복합니다.
- RAID 배열에서 쓰기 의도 비트맵을 제거합니다(mdadm --grow /dev/md2 -b none).
- RAID 배열 확장(mdadm --grow /dev/md2 --size max)
- 동기화 대기(mdadm --wait /dev/md2)
- 다시 비트맵 추가(mdadm --grow /dev/md2 --bitmap 내부)
- 사용 가능한 모든 공간을 차지하도록 LUKS 볼륨 크기 조정(cryptsetup luksOpen md2_crypt && cryptsetup resize md2_crypt)
- fsck 파일 시스템(e2fsck -f /dev/mapper/md2_crypt)
- ext4 파일 시스템 확장(resize2fs /dev/mapper/md2_crypt)
- 파일 시스템을 다시 마운트합니다(mount /data).
이것이 올바른 접근 방식입니까? 제가 중요한 단계를 놓쳤나요? 순서가 맞나요? 저는 LUKS를 키워본 적이 없기 때문에 특히 LUKS 부분이 걱정됩니다. 또한 의도 비트맵에 쓰는 것이 걱정됩니다. 이것이 제거/추가될 것인지, 언제 필요한 것인지 확실하지 않습니다.
추가 세부 사항:
이것은 내 /proc/mdstat입니다
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda4[3] sdb4[4]
7754802503 blocks super 1.2 [2/2] [UU]
[=============>.......] check = 66.6% (5170546304/7754802503) finish=237.0min speed=181708K/sec
bitmap: 0/15 pages [0KB], 262144KB chunk
md1 : active raid1 sdb3[4] sda3[3]
58560512 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sdb2[4] sda2[3]
488128 blocks super 1.2 [2/2] [UU]
unused devices: <none>
(시작하기 전에 동기화가 완료됩니다)
mdadm --세부사항/dev/md2
/dev/md2:
Version : 1.2
Creation Time : Sat Apr 1 20:30:05 2017
Raid Level : raid1
Array Size : 7754802503 (7395.56 GiB 7940.92 GB)
Used Dev Size : 7754802503 (7395.56 GiB 7940.92 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Wed Apr 12 16:57:07 2023
State : clean, checking
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Check Status : 66% complete
Events : 235789
Number Major Minor RaidDevice State
4 8 20 0 active sync /dev/sdb4
3 8 4 1 active sync /dev/sda4
루크 정보:
LUKS header information for /dev/md2
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha1
Payload offset: 4096
MK bits: 512
fdisk -l /dev/sda
Disk /dev/sda: 9,1 TiB, 10000831348736 bytes, 19532873728 sectors
Disk model: MG06ACA10TE
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
Device Start End Sectors Size Type
/dev/sda1 2048 22527 20480 10M BIOS boot
/dev/sda2 22528 999423 976896 477M Linux RAID
/dev/sda3 999424 118185983 117186560 55,9G Linux RAID
/dev/sda4 118185984 15628053134 15509867151 7,2T Linux RAID
parted /dev/sda는 무료 출력을 인쇄합니다:
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use
all of the space (an extra 3904820560 blocks) or continue with the current setting?
Fix/Ignore? ^C
Model: ATA MG06ACA10TE (scsi)
Disk /dev/sda: 10,0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
17,4kB 1049kB 1031kB Free Space
1 1049kB 11,5MB 10,5MB bios_grub
2 11,5MB 512MB 500MB raid
3 512MB 60,5GB 60,0GB raid
4 60,5GB 8002GB 7941GB raid
8002GB 10,0TB 1999GB Free Space
답변1
단계가 너무 많습니다. 꼭 필요한 경우가 아니면 드라이브가 고장나는 것을 원하지 않습니다. (※)
분할되지 않은 여유 공간이 있고 다른 파티션이 없다고 가정하면 모든 것을 순차적으로 추가하면 됩니다. 이와 같은 온라인 크기 조정을 사용하면 아무것도 제거할 필요가 없습니다.
# Partition (repeat it for all disks)
parted /dev/sdx print free
parted /dev/sdx resizepart 4 100%
# RAID
mdadm --grow /dev/md2 --size=max
mdadm --wait /dev/md2
# LUKS
cryptsetup resize md2_crypt
# EXT4
resize2fs /dev/mapper/md2_crypt
lsblk
파티션 /md/crypt 장치의 크기를 조정한 후 더 큰 새 크기를 표시하는 등 각 단계가 실제로 작동하는지 확인해야 합니다 . 이상적으로는 잘 작동해야 하지만 때로는 커널이 파티션 테이블을 다시 읽는 것을 거부합니다. 이 경우 재부팅해야 할 수도 있습니다.
(※) 상황에 따라 의미가 있을 수 있지만 위험한 변경을 수행할 때는 미러를 그대로 두는 것이 좋습니다. 하지만 귀하의 설명에 따르면 이는 귀하의 의도가 아닌 것 같습니다. 다른 모든 작업을 완료하고 제대로 작동하는지 확인할 때까지는 드라이브를 다시 추가하지 마세요.