CentOS7で作成したlvmのディスクをMIRACLE Linuxで使用する
2年前
2010年ごろ購入したPCを使って、CentOS7で動くファイルサーバー(Samba)を作成。
OS | CentOS7 |
---|---|
CPU | Intel社 Core i7-970 (6 cores, 12 threads) |
マザーボード | Supermicro社 X8STE |
メモリ | 4GB x 6 |
起動ディスク | SSD 40GB |
データ保存用ディスク | ST8000VN004-2M21 x 4台 |
ディスクアレイの作成手順
## パーティション作成 # for D in a b c d ; do parted -s /dev/sd${D} mklabel gpt parted -s /dev/sd${D} mkpart sd${D} 1 100% done ## mdadmでRAID1 (ミラーリング)のディスクを作成 # mdadm --create /dev/md0 --auto=yes --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1 # mdadm --create /dev/md1 --auto=yes --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdd1 ## ボリューム作成 # pvcreate /dev/md0 /dev/md1 # vgcreate vg210711 /dev/md0 /dev/md1 # lvcreate -l 100%FREE vg210711 ## フォーマット # mkfs -t xfs /dev/vg210711/lvol0 ## マウント # mount /dev/vg210711/lvol0 /home
最近
CPU、マザーボードなどを新調し、ハードディスクをそのまま流用してファイルサーバーをつくりなおし。
OS | MIRACLE LINUX 9 |
---|---|
CPU | Intel社 Core i7-10700 (8 cores, 16 threads) |
マザーボード | ASUS社 PRIME Z690-P D4 |
メモリ | UMAX社 UM-DDR4D-2400-32GBHS (16GB x 2) |
起動ディスク | NVMe WDS500G3X0C-00SJG0 |
データ保存用ディスク | ST8000VN004-2M21 x 4台 (古いものから流用) |
PCを組み立て、OSのインストールした段階で、Logical Volumeが見えない。
# pvscan PV /dev/nvme0n1p3 VG ml240506 lvm2 [<460.52 GiB / 0 free]
RAID1はちゃんと残っていました。
# cat /proc/mdstat Personalities : [raid1] md127 : active raid1 sdb1[0] sdc1[1] 7813893120 blocks super 1.2 [2/2] [UU] bitmap: 0/59 pages [0KB], 65536KB chunk md126 : active raid1 sdd1[0] 7813893120 blocks super 1.2 [2/1] [U_] bitmap: 16/59 pages [64KB], 65536KB chunk unused devices: <none>
ディスクアレイ復旧への道
以前のlvmの設定を見る。
# cat path_to_backup/etc/lvm/archive/vg210711_00000-943473283.vg (抜粋) vg210711 { id = "BQ7S6y-dEwA-ga8a-99ER-Ua5Q-4ufH-vhSHdT" physical_volumes { pv0 { id = "Zu1dHS-MDL7-SNjS-NMou-OZ9r-mypf-ePS766" device = "/dev/md0" # Hint only } pv1 { id = "67fAJ3-sCXb-hc8J-HEGE-5HSe-iaxc-Fbk64P" device = "/dev/md1" # Hint only } } logical_volumes { lvol0 { id = "Dlq1hA-p1bD-SGFT-NlFe-g7Ik-Q1iM-0EGywU" } } }
以前のlvmの構成では、pv0とpv1のデバイスが/dev/md0とmd1になっていました。MIRACLE LINUXではそれが/dev/md126とmd127とデバイスの番号が変わっているのが原因のようです。
/dev/md126などのUUIDがわかれば、それを使って再構成できるかと思い、色々と調べたのですが、mdadmが割り当てるUUIDとlvmで必要となるUUIDが違い、断念しました。
# mdadm --detail /dev/md127 /dev/md127: (途中省略) Consistency Policy : bitmap Name : localhost.localdomain:1 (local to host localhost.localdomain) UUID : 9bfec124:5341c8d7:df040afa:74b44fd4 <-- よく見るUUIDの形式と違う
他にもmd126などをmd0などに変更することも試みましたが、lvmを認識させることには関係ありませんでした。
lvmを作り直す
古いlvmの状態を記録したファイル(上記のpath_to_backup/etc/lvm/archive/vg210711_00000-943473283.vg)をcfg.vgとして以下に記録。
# pvcreate --uuid "67fAJ3-sCXb-hc8J-HEGE-5HSe-iaxc-Fbk64P" --restorefile cfg.vg /dev/md127 -ff # pvcreate --uuid "Zu1dHS-MDL7-SNjS-NMou-OZ9r-mypf-ePS766" --restorefile cfg.vg /dev/md126 -ff # pvscan PV /dev/md126 VG vg210711 lvm2 [<7.28 TiB / 0 free] PV /dev/md127 VG vg210711 lvm2 [<7.28 TiB / 0 free] PV /dev/nvme0n1p3 VG ml240506 lvm2 [<460.52 GiB / 0 free] Total: 3 [15.00 TiB] / in use: 3 [15.00 TiB] / in no VG: 0 [0 ] # vgcfgrestore -f cfg.vg vg210711 # vgchange -a y vg210711 # vgscan Found volume group "vg210711" using metadata type lvm2 Found volume group "ml240506" using metadata type lvm2 # lvscan ACTIVE '/dev/vg210711/lvol0' [14.55 TiB] inherit ACTIVE '/dev/ml240506/home' [20.00 GiB] inherit ACTIVE '/dev/ml240506/swap' [<31.33 GiB] inherit ACTIVE '/dev/ml240506/root' [<409.19 GiB] inherit # mount /dev/vg210711/lvol0 /mnt/ # ls /mnt/ takamasa etc ... ## やった!
無事、データを保存したまま復旧できました。
今後壊れているディスクを交換して、RAID1を復旧させる予定。
# parted -s /dev/sda mklabel gpt # parted -s /dev/sda mkpart sda 1 100% # mdadm --manage /dev/md0 --add /dev/sda1 # cat /proc/mdstat
こんな感じらしい。