RAID 4アレイの物理ボリューム数(スロット数)を減らすコマンドの例
「RAID 4」アレイの物理ボリューム数(スロット数)を減らすコマンドの例です。ここでは例として、アレイを構成する物理ボリュームの1つである「/dev/sdg3」をアレイから取り除き、物理ボリューム数を3つにします。
環境について
以下のアレイを作成した環境でコマンドを実行しています。以下のコマンドを実行し、アレイを作成しています。
sudo mdadm --create /dev/md/RAID4Array --level=raid4 --raid-devices=4 --chunk=128 --verbose /dev/sdd3 /dev/sde3 /dev/sdf3 /dev/sdg3
1.論理ボリュームの確認
比較のため現状の論理ボリュームの情報を確認します。物理ボリュームの数は4つです。
ubuntu@vb-ubuntu1310:~$ sudo mdadm --detail /dev/md/RAID4Array/dev/md/RAID4Array:
Version : 1.2
Creation Time : Thu Apr 17 20:08:18 2014
Raid Level : raid4
Array Size : 306816 (299.68 MiB 314.18 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 17 20:08:26 2014
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 128K
Name : vb-ubuntu1310:RAID4Array (local to host vb-ubuntu1310)
UUID : 25746462:e072a862:84c852b9:1c5a80a7
Events : 18
Number Major Minor RaidDevice State
0 8 51 0 active sync /dev/sdd3
1 8 67 1 active sync /dev/sde3
2 8 83 2 active sync /dev/sdf3
4 8 99 3 active sync /dev/sdg3
Version : 1.2
Creation Time : Thu Apr 17 20:08:18 2014
Raid Level : raid4
Array Size : 306816 (299.68 MiB 314.18 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 17 20:08:26 2014
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 128K
Name : vb-ubuntu1310:RAID4Array (local to host vb-ubuntu1310)
UUID : 25746462:e072a862:84c852b9:1c5a80a7
Events : 18
Number Major Minor RaidDevice State
0 8 51 0 active sync /dev/sdd3
1 8 67 1 active sync /dev/sde3
2 8 83 2 active sync /dev/sdf3
4 8 99 3 active sync /dev/sdg3
2.デバイスの情報
論理ボリュームを「GParted」で見ると、以下のようになっています。パーティションが1つあるということと、論理ボリュームの総セクタ数が「613632」であることが分かります。
3.パーティション(ファイルシステム)の情報
論理ボリューム上のパーティション(ファイルシステム)の情報を確認します。論理ボリューム上に1つパーティションを作成しています。
パーティションの「終了セクタ」は「612351」です。
物理ボリュームの数が1つ減るため、論理ボリュームの総セクター数は「409088」になります。
(102272 * 1024 / 512 * 2)
4.パーティション(ファイルシステム)の縮小
パーティション(ファイルシステム)の縮小を行います。余裕を見て少し小さめにしておくと良いでしょう。
5.パーティション(ファイルシステム)の縮小完了
パーティション(ファイルシステム)の縮小後のパーティションの情報を確認します。全体的に見ると以下のようになります。
パーティションの情報を見ると、以下のようになっています。
6.論理ボリュームのサイズの縮小
物理ボリュームの数が1つ減るため、論理ボリュームのサイズは「204544KiB」になります。(102272 * 2)
以下のコマンドを実行し、論理ボリュームのサイズを「204544KiB」に縮小します。
コマンドやオプションの説明は「論理ボリュームのサイズを一時期に変更するコマンドの説明」を参考にしてください。
ubuntu@vb-ubuntu1310:~$ sudo mdadm --grow /dev/md/RAID4Array --array-size=204544
ubuntu@vb-ubuntu1310:~$
ubuntu@vb-ubuntu1310:~$
7.論理ボリュームの確認
現状の論理ボリュームの情報を確認します。「Array Size」が、論理ボリュームのサイズです。
「204544KiB」になっています。
ubuntu@vb-ubuntu1310:~$ sudo mdadm --detail /dev/md/RAID4Array
/dev/md/RAID4Array:
Version : 1.2
Creation Time : Thu Apr 17 20:08:18 2014
Raid Level : raid4
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 17 20:27:08 2014
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 128K
Name : vb-ubuntu1310:RAID4Array (local to host vb-ubuntu1310)
UUID : 25746462:e072a862:84c852b9:1c5a80a7
Events : 18
Number Major Minor RaidDevice State
0 8 51 0 active sync /dev/sdd3
1 8 67 1 active sync /dev/sde3
2 8 83 2 active sync /dev/sdf3
4 8 99 3 active sync /dev/sdg3
/dev/md/RAID4Array:
Version : 1.2
Creation Time : Thu Apr 17 20:08:18 2014
Raid Level : raid4
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 17 20:27:08 2014
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Chunk Size : 128K
Name : vb-ubuntu1310:RAID4Array (local to host vb-ubuntu1310)
UUID : 25746462:e072a862:84c852b9:1c5a80a7
Events : 18
Number Major Minor RaidDevice State
0 8 51 0 active sync /dev/sdd3
1 8 67 1 active sync /dev/sde3
2 8 83 2 active sync /dev/sdf3
4 8 99 3 active sync /dev/sdg3
8.バックアップGPTデータの修復
パーティションテーブルの形式が「GPT」の場合、ここでバックアップGPTデータを修復します。ここでは例として、「gdisk」を利用してバックアップGPTデータを修復します。
ubuntu@vb-ubuntu1310:~$ sudo gdisk /dev/md/RAID4Array
GPT fdisk (gdisk) version 0.8.7
Warning! Disk size is smaller than the main header indicates! Loading
secondary header from the last sector of the disk! You should use 'v' to
verify disk integrity, and perhaps options on the experts' menu to repair
the disk.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! One or more CRCs don't match. You should repair the disk!
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged
****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
Command (? for help): r
Recovery/transformation command (? for help): e
Warning! This will probably do weird things if you've converted an MBR to
GPT form and haven't yet saved the GPT! Proceed? (Y/N): y
Recovery/transformation command (? for help): w
Caution! Secondary header was placed beyond the disk's limits! Moving the
header, but other problems may occur!
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/md/RAID4Array.
The operation has completed successfully.
GPT fdisk (gdisk) version 0.8.7
Warning! Disk size is smaller than the main header indicates! Loading
secondary header from the last sector of the disk! You should use 'v' to
verify disk integrity, and perhaps options on the experts' menu to repair
the disk.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! One or more CRCs don't match. You should repair the disk!
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged
****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
Command (? for help): r
Recovery/transformation command (? for help): e
Warning! This will probably do weird things if you've converted an MBR to
GPT form and haven't yet saved the GPT! Proceed? (Y/N): y
Recovery/transformation command (? for help): w
Caution! Secondary header was placed beyond the disk's limits! Moving the
header, but other problems may occur!
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/md/RAID4Array.
The operation has completed successfully.
念の為、チェックも行っておきます。
ubuntu@vb-ubuntu1310:~$ sudo gdisk /dev/md/RAID4Array
GPT fdisk (gdisk) version 0.8.7
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): v
No problems found. 3517 free sectors (1.7 MiB) available in 2
segments, the largest of which is 2014 (1007.0 KiB) in size.
GPT fdisk (gdisk) version 0.8.7
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): v
No problems found. 3517 free sectors (1.7 MiB) available in 2
segments, the largest of which is 2014 (1007.0 KiB) in size.
9.ディスクとパーティション(ファイルシステム)の情報
論理ボリュームの総セクター数を確認します。「総セクタ数」が「409088」になっていることが分かります。
パーティションが論理ボリュームの総セクター数以内に収まっていることが分かります。
またバックアップGPTデータ分の余裕もあります。
必要以上にパーティションを縮小し、後方に空き容量がある場合、ここでパーティションを拡大してもよいです。
ここまでの手順で、論理ボリューム上のパーティションやファイルシステムに問題がないか確認しておきます。
次の手順から実際に物理ボリュームの数を変更します。
10.物理ボリューム数の変更
以下のコマンドを実行し、物理ボリュームの数を変更します。コマンドやオプションの説明は「物理ボリューム数(スロット数)を変更するコマンドの説明」を参考にしてください。
sudo mdadm --grow /dev/md/RAID4Array --raid-devices=3 --backup-file=/root/RAID4ArrayBackup.reshape
11.コマンドの実行結果
以下のようにコマンドの実行結果が表示されます。
ubuntu@vb-ubuntu1310:~$ sudo mdadm --grow /dev/md/RAID4Array --raid-devices=3 --backup-file=/root/RAID4ArrayBackup.reshape
mdadm: Need to backup 768K of critical section..
ubuntu@vb-ubuntu1310:~$
mdadm: Need to backup 768K of critical section..
ubuntu@vb-ubuntu1310:~$
12.論理ボリュームのサイズを元に戻す
以下のコマンドを実行し、変更した論理ボリュームのサイズを元に戻しておきます。
ubuntu@vb-ubuntu1310:~$ sudo mdadm --grow /dev/md/RAID4Array --array-size=max
ubuntu@vb-ubuntu1310:~$
ubuntu@vb-ubuntu1310:~$
13.論理ボリュームの確認
現状の論理ボリュームの情報を確認します。「Array Size」は「204544KiB」になっています。
物理ボリューム数が3つに変更されています。
また元々アレイで使用されていた物理ボリュームは、「スペアディスク」になっています。
ubuntu@vb-ubuntu1310:~$ sudo mdadm --detail /dev/md/RAID4Array
/dev/md/RAID4Array:
Version : 1.2
Creation Time : Thu Apr 17 20:08:18 2014
Raid Level : raid4
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 17 20:35:56 2014
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Chunk Size : 128K
Name : vb-ubuntu1310:RAID4Array (local to host vb-ubuntu1310)
UUID : 25746462:e072a862:84c852b9:1c5a80a7
Events : 41
Number Major Minor RaidDevice State
0 8 51 0 active sync /dev/sdd3
1 8 67 1 active sync /dev/sde3
2 8 83 2 active sync /dev/sdf3
4 8 99 - spare /dev/sdg3
/dev/md/RAID4Array:
Version : 1.2
Creation Time : Thu Apr 17 20:08:18 2014
Raid Level : raid4
Array Size : 204544 (199.78 MiB 209.45 MB)
Used Dev Size : 102272 (99.89 MiB 104.73 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Apr 17 20:35:56 2014
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Chunk Size : 128K
Name : vb-ubuntu1310:RAID4Array (local to host vb-ubuntu1310)
UUID : 25746462:e072a862:84c852b9:1c5a80a7
Events : 41
Number Major Minor RaidDevice State
0 8 51 0 active sync /dev/sdd3
1 8 67 1 active sync /dev/sde3
2 8 83 2 active sync /dev/sdf3
4 8 99 - spare /dev/sdg3