ファイルサーバの 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/md127mdadm --zero-superblock /dev/sd[abcd]*