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
こんな感じらしい。