ファイルサーバの OS 再インストールをした
- ファイルサーバを2台所有していてその2号機の HDD が1基壊れた
- ので転がっていたスペア*2の HDD を交換したらほんの少しサイズが違っていて RAID が組めなかった*3
- それに加えてファイルシステムが XFS だったため、XFS はファイルシステムの縮小がコマンドレベルでサポートされていないという事を今更知ったので、復旧がめんどくさくなった
- よって「構成 (After)」に書いた構成で作り直す
LVM on RAID の復旧をする際の参考リンク
調べたけど無駄に終わったため、せめて参考リンクだけでも載せておけば誰かの役に立つかもしれない。
- How To Resize LVM Software RAID1 Partitions (Shrink & Grow)
- 概ねこちらを参考にして作業しようとした
- LVM パーティション をrescue モードから操作する - うまいぼうぶろぐ
- 今回は rescue モードでやるので状況が似ているので一応記載
構成 (Before)
- 筐体: HP ProLiant MicroServer
- メモリ: 7882572kb *4
- HDD: 2TB x 4
- /dev/sda1: /boot(500MB) *5
- LVM on RAID 10 (sda2,sd[bcd]1): /(32GB), swap(7.8GB), ファイルサーバデータ用(/ と swap の余り)
構成 (After)
のが以下の通り。
- 筐体、メモリ、HDD: 変わらず
- RAID 1 (sd[ab]1): /boot(500MB)
- LVM on RAID 10 (sd[ab]2,sd[cd]1): /(32GB), swap(7.8GB), ファイルサーバデータ用(/ と swap の余り)
sda1 が冗長化できてないので、この際交換した /dev/sdc の先頭に /boot 用の領域を作って、 sda1 と sdb1 で RAID 1 するのも目標にした。
パーティションとファイルシステムの構成 (Before)
sdc は交換したばかりだからまっさら。
$ for i in /dev/sd[abcd]; do sudo parted $i unit s print; done Model: ATA WDC WD20EARX-00P (scsi) Disk /dev/sda: 3907029168s Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2048s 1026047s 1024000s primary xfs boot 2 1026048s 3907028991s 3906002944s primary raid Model: ATA WDC WD20EARX-00P (scsi) Disk /dev/sdb: 3907029168s Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2048s 3906007039s 3906004992s primary raid Model: ATA WDC WD20EZRZ-00Z (scsi) Disk /dev/sdc: 3907029168s Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags Model: ATA WDC WD20EARX-00P (scsi) Disk /dev/sdd: 3907029168s Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2048s 3906007039s 3906004992s primary raid
$ lsblk 2 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 3 sda 8:0 0 1.8T 0 disk 4 ├─sda1 8:1 0 500M 0 part /boot 5 └─sda2 8:2 0 1.8T 0 part 6 └─md127 9:127 0 3.7T 0 raid10 7 ├─vgraid-root 253:0 0 31.3G 0 lvm / 8 ├─vgraid-swap 253:1 0 7.8G 0 lvm [SWAP] 9 └─vgraid-storage 253:2 0 3.6T 0 lvm /storage 10 sdb 8:16 0 1.8T 0 disk 11 └─sdb1 8:17 0 1.8T 0 part 12 └─md127 9:127 0 3.7T 0 raid10 13 ├─vgraid-root 253:0 0 31.3G 0 lvm / 14 ├─vgraid-swap 253:1 0 7.8G 0 lvm [SWAP] 15 └─vgraid-storage 253:2 0 3.6T 0 lvm /storage 16 sdc 8:32 0 1.8T 0 disk 17 sdd 8:48 0 1.8T 0 disk 18 └─sdd1 8:49 0 1.8T 0 part 19 └─md127 9:127 0 3.7T 0 raid10 20 ├─vgraid-root 253:0 0 31.3G 0 lvm / 21 ├─vgraid-swap 253:1 0 7.8G 0 lvm [SWAP] 22 └─vgraid-storage 253:2 0 3.6T 0 lvm /storage 23
$ lsblk -f 24 NAME FSTYPE LABEL UUID MOUNTPOINT 25 sda 26 ├─sda1 xfs 394c9391-a812-4fe9-9718-aad016d8731f /boot 27 └─sda2 linux_raid_member localhost:pv00 0fb4300e-2542-7a0b-7493-6499e5434dfc 28 └─md127 LVM2_member gbqPWQ-2Y3F-dEYq-GeAh-1E6e-60j6-KJET3D 29 ├─vgraid-root xfs d2a198cd-952e-4ce6-ae4e-5ab569d99e91 / 30 ├─vgraid-swap swap 9770dc58-394d-4ce5-bb75-39af6eccd593 [SWAP] 31 └─vgraid-storage xfs storage 4a33b788-4398-4046-a9d3-f8574d21d60c /storage 32 sdb 33 └─sdb1 linux_raid_member localhost:pv00 0fb4300e-2542-7a0b-7493-6499e5434dfc 34 └─md127 LVM2_member gbqPWQ-2Y3F-dEYq-GeAh-1E6e-60j6-KJET3D 35 ├─vgraid-root xfs d2a198cd-952e-4ce6-ae4e-5ab569d99e91 / 36 ├─vgraid-swap swap 9770dc58-394d-4ce5-bb75-39af6eccd593 [SWAP] 37 └─vgraid-storage xfs storage 4a33b788-4398-4046-a9d3-f8574d21d60c /storage 38 sdc 39 sdd 40 └─sdd1 linux_raid_member localhost:pv00 0fb4300e-2542-7a0b-7493-6499e5434dfc 41 └─md127 LVM2_member gbqPWQ-2Y3F-dEYq-GeAh-1E6e-60j6-KJET3D 42 ├─vgraid-root xfs d2a198cd-952e-4ce6-ae4e-5ab569d99e91 / 43 ├─vgraid-swap swap 9770dc58-394d-4ce5-bb75-39af6eccd593 [SWAP] 44 └─vgraid-storage xfs storage 4a33b788-4398-4046-a9d3-f8574d21d60c /storage
パーティションとファイルシステムの構成 (After)
$ for i in /dev/sd[abcd]; do sudo parted $i unit s print; done モデル: ATA WDC WD20EARX-00P (scsi) ディスク /dev/sda: 3907029168s セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 2048s 1026047s 1024000s primary ext2 boot, raid 2 1026048s 3907028991s 3906002944s primary raid モデル: ATA WDC WD20EARX-00P (scsi) ディスク /dev/sdb: 3907029168s セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 2048s 1026047s 1024000s primary ext2 boot, raid 2 1026048s 3907028991s 3906002944s primary raid モデル: ATA WDC WD20EZRZ-00Z (scsi) ディスク /dev/sdc: 3907029168s セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 2048s 1026047s 1024000s primary ext2 boot, raid 2 1026048s 3907028991s 3906002944s primary raid モデル: ATA WDC WD20EARX-00P (scsi) ディスク /dev/sdd: 3907029168s セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 2048s 1026047s 1024000s primary ext2 boot, raid 2 1026048s 3907028991s 3906002944s primary raid
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 1.8T 0 disk ├─sda1 8:1 0 500M 0 part │ └─md0 9:0 0 499.7M 0 raid1 /boot └─sda2 8:2 0 1.8T 0 part └─md127 9:127 0 3.7T 0 raid10 ├─centos-swap 253:0 0 7.8G 0 lvm [SWAP] ├─centos-root 253:1 0 31.3G 0 lvm / └─centos-storage 253:2 0 3.6T 0 lvm /storage sdb 8:16 0 1.8T 0 disk ├─sdb1 8:17 0 500M 0 part │ └─md0 9:0 0 499.7M 0 raid1 /boot └─sdb2 8:18 0 1.8T 0 part └─md127 9:127 0 3.7T 0 raid10 ├─centos-swap 253:0 0 7.8G 0 lvm [SWAP] ├─centos-root 253:1 0 31.3G 0 lvm / └─centos-storage 253:2 0 3.6T 0 lvm /storage sdc 8:32 0 1.8T 0 disk ├─sdc1 8:33 0 500M 0 part │ └─md0 9:0 0 499.7M 0 raid1 /boot └─sdc2 8:34 0 1.8T 0 part └─md127 9:127 0 3.7T 0 raid10 ├─centos-swap 253:0 0 7.8G 0 lvm [SWAP] ├─centos-root 253:1 0 31.3G 0 lvm / └─centos-storage 253:2 0 3.6T 0 lvm /storage sdd 8:48 0 1.8T 0 disk ├─sdd1 8:49 0 500M 0 part │ └─md0 9:0 0 499.7M 0 raid1 /boot └─sdd2 8:50 0 1.8T 0 part └─md127 9:127 0 3.7T 0 raid10 ├─centos-swap 253:0 0 7.8G 0 lvm [SWAP] ├─centos-root 253:1 0 31.3G 0 lvm / └─centos-storage 253:2 0 3.6T 0 lvm /storage
$ lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 linux_raid_member localhost:0 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx │ └─md0 ext2 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx /boot └─sda2 linux_raid_member xxx:pv00 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx └─md127 LVM2_member xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx ├─centos-swap swap xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx [SWAP] ├─centos-root ext4 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx / └─centos-storage ext4 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx /storage sdb ├─sdb1 linux_raid_member localhost:0 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx │ └─md0 ext2 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx /boot └─sdb2 linux_raid_member xxx:pv00 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx └─md127 LVM2_member xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx ├─centos-swap swap xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx [SWAP] ├─centos-root ext4 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx / └─centos-storage ext4 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx /storage sdc ├─sdc1 linux_raid_member localhost:0 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx │ └─md0 ext2 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx /boot └─sdc2 linux_raid_member xxx:pv00 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx └─md127 LVM2_member xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx ├─centos-swap swap xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx [SWAP] ├─centos-root ext4 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx / └─centos-storage ext4 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx /storage sdd ├─sdd1 linux_raid_member localhost:0 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx │ └─md0 ext2 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx /boot └─sdd2 linux_raid_member xxx:pv00 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx └─md127 LVM2_member xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx ├─centos-swap swap xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx [SWAP] ├─centos-root ext4 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx / └─centos-storage ext4 xxxxxxxx-xxxx-xxxx-xxxx--xxxxxxxxxxxx /storage
HDD のパーティションを作り直した際の作業メモ
CentOS 7 のインストーラーですべて上書きしようと思ったらできなかったので、CentOS 7 のインストールディスクで rescue mode に入り以下のコマンドを実行。 この作業の後そのままコマンドラインで LVM と RAID 10 (LVM 用) と RAID 1 (/boot 用) も作ろうとしたけどやっぱりインストーラーでやった(パーティションは作ったかも。忘れた…)。
- LVM のメタデータを削除
pvremove -ffy /dev/sd[abcd]*
- LVM を停止
vgchange -an
- mdadm (Software RAID) を停止
mdadm --stop /dev/md127
- mdadm (Software RAID) のメタデータを削除
mdadm --zero-superblock /dev/md127
mdadm --zero-superblock /dev/sd[abcd]*