2つの同じHDD(両方4TB)を持つシステムがあり、互いに「結合」されています。襲撃1:
$ sudo mdadm --query --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Oct 8 22:22:53 2017
Raid Level : raid1
Array Size : 3906887488 (3725.90 GiB 4000.65 GB)
Used Dev Size : 3906887488 (3725.90 GiB 4000.65 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Fri Aug 4 19:48:49 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : -------:0 (local to host -------)
UUID : -------
Events : 13519
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
その上にボリュームグループもあり、@roaimaの答えに基づいて設定を識別できます。
sda 8:0 0 3.7T 0 disk
└─md0 9:0 0 3.7T 0 raid1
└─md0p1 259:1 0 3.7T 0 part
└─lukslvm-XXXXXXXXX 253:3 0 3.7T 0 crypt
├─vg--XXXXXXXXX-AAAA 253:4 0 500G 0 lvm /media/AAAA
└─vg--XXXXXXXXX-BBBB 253:5 0 3.2T 0 lvm /media/BBBB
sdb 8:16 0 3.7T 0 disk
└─md0 9:0 0 3.7T 0 raid1
└─md0p1 259:1 0 3.7T 0 part
└─lukslvm-XXXXXXXXX 253:3 0 3.7T 0 crypt
├─vg--XXXXXXXXX-AAAA 253:4 0 500G 0 lvm /media/AAAA
└─vg--XXXXXXXXX-BBBB 253:5 0 3.2T 0 lvm /media/BBBB
この構成を想定して、これらのディスクをより大きなディスク(8 TBなど)に交換するにはどうすればよいですか。何も失わないで(注:マザーボードには物理コネクタがなくなりました)?
4 TBの1つを8 TBに交換し、両方のハードドライブのraid1状態が変わるのを待ってから、active sync
別の4TBを8 TBに交換してもう一度待ちますactive sync
。その後、明らかにVGを拡張してFSを拡張しますか?
答え1
ファイルシステムの一番上から始まり、論理的に下に作業する方が簡単です。 (ただし、実際にはパスの出力が上向きに動作することを意味しますlsblk
。)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.7G 0 disk
├─mmcblk0p1 179:1 0 63M 0 part /boot
├─mmcblk0p2 179:2 0 8G 0 part /
└─mmcblk0p3 179:3 0 21.7G 0 part
├─pi_p3-raid1a 254:2 0 1G 0 lvm
│ └─md1 9:1 0 1022M 0 raid1
│ └─crypt_md1 254:4 0 1006M 0 crypt
│ └─vgtest-lvtest 254:5 0 100M 0 lvm /mnt/dsk
└─pi_p3-raid1b 254:3 0 1G 0 lvm
└─md1 9:1 0 1022M 0 raid1
└─crypt_md1 254:4 0 1006M 0 crypt
└─vgtest-lvtest 254:5 0 100M 0 lvm /mnt/dsk
あなたの場合は、ルートファイルシステムから起動したいかもしれません。私の場合はSDカードパーティションでしたmmcblkp02
が、画像はあまり役に立ちませんでしたので、ここにマウントされたext4ファイルシステムで始まるレイヤーを作成しました/mnt/dsk
。これに従ってください。
/mnt/dsk
ext4
次のようなファイルシステムです。ext4test
findmnt /mnt/dsk TARGET SOURCE FSTYPE OPTIONS /mnt/dsk /dev/mapper/vgtest-lvtest ext4 rw,relatime,data=ordered
ツリーの上に移動すると、デバイスによって作成されたLVMコンポーネントであることがわかります
crypt_md1
。実際には、ファイルシステムのLVとVGの名前であるlvs
LVとVGの名前を使用して解決できます。pvs
lvtest
vgtest
lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lvtest vgtest -wi-ao---- 100.00m pvs PV VG Fmt Attr PSize PFree /dev/mapper/crypt_md1 vgtest lvm2 a-- 1004.00m 904.00m
crypt_md1
ツリーを1つ上のレベルに移動すると、これが構築されているcrypto_LUKS
ことがわかります。md1
一歩上がると、これがある
md1
ことを確認できますlinux_raid_member
。cat /proc/mdstat
cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [raid1] md1 : active raid1 dm-3[1] dm-2[0] 1046528 blocks super 1.2 [2/2] [UU] unused devices: <none>
混乱しているかもしれませんが、今では煙とミラーを見ることができます。私は
md1
他の既存のLVM VGから2つのRAIDミラーの半分を作成しましたpi_p3
。これは本当です。この例では、RAID1ミラーを構築するために使用した2つのコンポーネントをraid1a
作成しました。つまり、「物理→VG→2x LV→2xRAID→MD(RAID1)→LUKS→VG→LV→EXT4」になります!以下は、私がビルドするために使用したコマンドの完全なセットです。すでにLVM VGがあることに注意してください。raid1b
mdadm --create
/dev/pi_p3
lvcreate --size 1G --name raid1a /dev/pi_p3 lvcreate --size 1G --name raid1b /dev/pi_p3 mdadm --create /dev/md1 --level 1 --raid-devices 2 /dev/pi_p3/raid1{a,b} cryptsetup -c aes-xts-plain -s 512 -y luksFormat /dev/md1 # "test" cryptsetup luksOpen /dev/md1 crypt_md1 pvcreate /dev/mapper/crypt_md1 vgcreate vgtest /dev/mapper/crypt_md1 lvcreate --size 100M --name lvtest vgtest mkfs -L ext4test -t ext4 /dev/vgtest/lvtest mount /dev/vgtest/lvtest /mnt/dsk
あなたの場合、LVMコンポーネントの代わりに2つの物理デバイスが表示されますので、raid1a
ここでraid1b
分析を中止します。
構造が予想したものと異なる場合、つまり「RAID - > LUKS - > LVM - > FS構成「そうであれば、この方法を使用して実際の構造を識別できます。
ここで、質問の2番目の部分であるより大きなディスクに構造を拡張する方法について説明します。 1GBraid1a
とLVを2GBに置き換えて、raid1b
この例を実装しますraid1c
。raid1d
# Synthesise two "larger disks" from the VG
lvcreate --size 2G --name raid1c /dev/pi_p3
lvcreate --size 2G --name raid1d /dev/pi_p3
# Swap out the first disk
mdadm --manage /dev/md1 --add /dev/pi_p3/raid1c
mdadm --manage /dev/md1 --set-faulty /dev/pi_p3/raid1a
mdadm --manage /dev/md1 --remove /dev/pi_p3/raid1a
# Wait for synchronisation to complete!
cat /proc/mdstat
同期が完了するまで待ちます。。待っていない場合〜する次のステップでは、ファイルシステム全体とそのデータが失われます。
# Swap out the second disk
mdadm --manage /dev/md1 --add /dev/pi_p3/raid1d
mdadm --manage /dev/md1 --set-faulty /dev/pi_p3/raid1b
mdadm --manage /dev/md1 --remove /dev/pi_p3/raid1b
# Grow the new RAID1 array
mdadm --grow /dev/md1 --size max
# Resize the encrypted layer
cryptsetup resize /dev/mapper/crypt_md1
# Resize the PV for the LVM VG
pvresize /dev/mapper/crypt_md1
この時点で、PVサイズが正常に調整されたことを確認するメッセージが表示されます。
Physical volume "/dev/mapper/crypt_md1" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
新しいサイズは2 GB(新しい「ディスク」のサイズ)で表示されますpvs /dev/mapper/crypt_md1
。vgs vgtest
PV VG Fmt Attr PSize PFree
/dev/mapper/crypt_md1 vgtest lvm2 a-- 1.98g 1.88g
VG #PV #LV #SN Attr VSize VFree
vgtest 1 1 0 wz--n- 1.98g 1.88g
最後に、システムの電源を切るか再起動する前に、2番目のRAID1同期が完了するのを待つ必要があります。
cat /proc/mdstat