web-dev-qa-db-ja.com

mdadm-RAID5アレイサイズと実際のディスクサイズの不一致

MdadmRAID5にある4x3TB WD REDディスクがあります。これは合計9TBの使用可能スペースのアレイサイズであるはずですが、6TBしかありません。

すべてのディスクがアレイ内にあることを確認しました。唯一奇妙なのは、fdiskがドライブごとに異なるパーティションID、ヘッドサイズ、セクターサイズなどを返すことです。これらのドライブはさまざまなタイミングで追加されたため、別のチュートリアルを実行した可能性があり、これが何らかの事故につながります。

もちろん、データを失いたくないので、意地悪なことを試し始めたくありません。だから私はそれが簡単な修正であり、私が欠けているものであることを望んでいます。どのディスクに障害があるかがわかったら、これをアレイに正しく追加し直すことができます。

 root @ bobserv:〜#cat /proc/mdstat
パーソナリティ:[linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
 md0:アクティブRAID5 sdb1 [5] sdc1 [3] sdd1 [1] sde1 [4] 
 6442053120ブロックスーパー1.2レベル5、512kチャンク、アルゴリズム2 [4/4] [UUUU] 
 
未使用のデバイス:なし
 root @ bobserv:〜#mdadm --detail /dev/md/0
/dev/md/0:
バージョン:1.2 
作成時間:木2013年10月17日20:19:10 
 RAIDレベル:raid5 
アレイサイズ:6442053120(6143.62 GiB 6596.66 GB)
使用済み開発サイズ: 2147351040(2047.87 GiB 2198.89 GB)
 RAIDデバイス:4 
合計デバイス:4 
永続性:スーパーブロックは永続的
 
更新時間:2014年2月11日火曜日09:36:33 
状態:アクティブ
アクティブデバイス:4 
稼働デバイス:4 
失敗デバイス: 0 
スペアデバイス:0 
 
レイアウト:左対称
チャンクサイズ:512K 
 
名前:bob:0 [ .____。 sde1 
 1 8 49 1アクティブ同期/dev/sdd1
38 332アクティブ同期/dev/sdc1
58 173アクティブ同期/dev/sdb1
 root @ bobserv:〜#fdisk -l 
 
 Disk/dev/sda:85.9 GB、85899345920バイト
 255ヘッド、63セクター/トラック、10443シリンダー、合計167772160セクター
単位= 1のセクター* 512 = 512バイト
セクターサイズ(論理/物理):512バイト/ 512バイト
 I/Oサイズ(最小/最適) ):512バイト/ 512バイト
ディスク識別子:0x00045481 
 
デバイスブート開始エンドブロックIDシステム
/dev/sda1 * 2048 165675007 82836480 83 Linux 
/dev/sda2 165677054 167770111 1046529 5拡張
/dev/sda5 165677056 167770111 1046528 82 Linuxスワップ/ Solaris 
 
警告:GPT(GUIDパーティションテーブル)が検出されました/ dev/sdb '! utilfdiskはGPTをサポートしていません。使用GNU Parted。
 
 
ディスク/dev/sdb:3000.6 GB、3000592982016バイト
 255ヘッド、63セクター/トラック、364801シリンダー、合計5860533168セクター
単位= 1 * 512 = 512バイトのセクター
セクターサイズ(論理/物理):512バイト/ 512バイト
 I/Oサイズ(最小/最適):512バイト/ 512バイト
ディスク識別子:0x79c7d1c7 
 
デバイスブートスタートエンドブロックIdシステム
/dev/sdb1 1 4294967295 2147483647+ ee GPT 
 
ディスク/ dev/sdc:3000.6 GB、3000592982016バイト
 90ヘッド、3セクター/トラック、21705678シリンダー、合計5860533168セクター
単位=セクターof 1 * 512 = 512バイト
セクターサイズ(論理/物理):512バイト/ 512バイト
 I/Oサイズ(最小/最適):512バイト/ 512バイト
ディスク識別子:0x6b7a81a1 
 
デバイスブート開始エンドブロックIDシステム
/dev/sdc1 2048 4294967294 2147482623+ fd Lin uxRAID自動検出
 
ディスク/dev/sdf:500.1 GB、500107862016バイト
 255ヘッド、63セクター/トラック、60801シリンダー、合計976773168セクター
ユニット= 1のセクター* 512 = 512バイト
セクターサイズ(論理/物理):512バイト/ 512バイト
 I/Oサイズ(最小/最適):512バイト/ 512バイト
ディスク識別子:0x00083e19 
 
デバイスブート開始エンドブロックIDシステム
/dev/sdf1 2048 123844607 61921280 83 Linux 
/dev/sdf2 123846654 156248063 162007055拡張
/dev/sdf5 123846656 156248063 16200704 82 Linuxスワップ/ Solaris 
 
警告:GPT(GUIDパーティションテーブル)が「/ dev/sde」で検出されました! utilfdiskはGPTをサポートしていません。 GNU Parted。
 
 
 Disk/dev/sde:3000.6 GB、3000592982016バイト
 255ヘッド、63セクター/トラック、364801シリンダー、合計5860533168セクター
単位= 1のセクター* 512 = 512バイト
セクターサイズ(論理/物理):512バイト/ 512バイト
 I/Oサイズ(最小/最適):512バイト/ 512バイト
ディスク識別子:0x00000000 
 
デバイスブート開始エンドブロックIDシステム
/dev/sde1 1 4294967295 2147483647+ ee GPT 
 
ディスク/dev/sdd:3000.6 GB、3000592982016バイト
 90ヘッド、3セクター/トラック、21705678シリンダー、合計5860533168セクター
ユニット=セクターof 1 * 512 = 512バイト
セクターサイズ(論理/物理):512バイト/ 512バイト
 I/Oサイズ(最小/最適):512バイト/ 512バイト
ディスク識別子:0x83a606dd 
 
デバイスブートスタートエンドブロックIdシステム
/dev/sdd1 2048 4294967294 2147482623+ fd Lin uxRAID自動検出
 
ディスク/dev/md0:6596.7 GB、6596662394880バイト
 2ヘッド、4セクター/トラック、1610513280シリンダー、合計12884106240セクター
ユニット= 1のセクター* 512 = 512バイト
セクターサイズ(論理/物理):512バイト/ 512バイト
 I/Oサイズ(最小/最適):524288バイト/ 1048576バイト
ディスク識別子:0x00000000 
 
ディスク/ dev/md0に有効なパーティションテーブルが含まれていません
 root @ bobserv:〜#

編集:私もアレイをアンマウントし、両方を試しましたfsck.ext4 -f/dev/mdresize2fs/dev/md無駄に。

#parted -l 
モデル:VMware、VMware Virtual S(scsi)
ディスク/ dev/sda:85.9GB 
セクターサイズ(論理/物理):512B/512B 
パーティションテーブル:msdos 
 
番号開始終了サイズタイプファイルシステムフラグ
 1 1049kB 84.8GB 84.8GBプライマリext4ブート
 2 84.8GB 85.9GB 1072MB拡張
 5 84.8GB 85.9GB 1072MB論理linux-swap(v1)
 
 
モデル:VMware、VMware Virtual S(scsi)
ディスク/ dev/sdb:3001GB 
セクターサイズ(論理/物理):512B/512B 
パーティションテーブル:gpt 
 
番号開始終了サイズファイルシステム名フラグ
 1 1049kB 3001GB 3001GB ntfs primary 
 
 
モデル:VMware、VMware Virtual S(scsi)
ディスク/ dev/sdc:3001GB 
セクターサイズ(論理/物理):512B/512B 
パーティションテーブル:msdos 
 
番号開始終了サイズタイプファイルシステムフラグ
 1 1049kB 21 99GB2199GBプライマリレイド
 
 
モデル:VMware、VMware Virtual S(scsi)
ディスク/ dev/sdd:3001GB 
セクターサイズ(論理/ physical):512B/512B 
 Partition Table:msdos 
 
 Number Start End Size Type File system Flags 
 1 1049kB 2199GB 2199GB primary raid 
 
 
モデル:VMware、VMware Virtual S(scsi)
ディスク/ dev/sde:3001GB 
セクターサイズ(論理/物理):512B/512B 
パーティションテーブル:gpt 
 
番号開始終了サイズファイルシステム名フラグ
 1 1049kB 3001GB3001GBプライマリ
 
 
モデル:VMware、VMware Virtual S(scsi)
ディスク/ dev/sdf:500GB 
セクターサイズ(論理/物理):512B/512B 
パーティションテーブル:msdos 
 
番号開始終了サイズタイプファイルシステムフラグ
 1 1049kB 63.4GB63.4GBプライマリext4 
 2 63.4GB 80.0GB 16.6GB exte nded 
 5 63.4GB 80.0GB 16.6GB論理linux-swap(v1)
 
 
モデル:LinuxソフトウェアRAIDアレイ(md)
ディスク/ dev/md0:6597GB 
セクターサイズ(論理/物理):512B/512B 
パーティションテーブル:ループ
 
番号開始終了サイズファイルシステムフラグ
 1 0.00B 6597GB 6597GB ext4 
 
 
 root @ kierserv:/ media/store/TV Shows/Bob's Burgers#
4
Lemon

fdiskは、2TBを超えるディスクには不適切なツールです。代わりにpartedまたはgdiskを使用してください。

/dev/sdc1および/dev/sdd1は2TBのパーティションなので、それがアレイのサイズを制限します。他のディスクについては、GPTがあるので、すでに3TBだと思いますが、確認する必要があります。

基本的に、アレイを停止し、各パーティションを3TBに拡大して(開始オフセットを変更せずに)、再度開始して、次のように拡張する必要があります。

mdadm --grow /dev/md0 --size=max

アレイを停止できない場合は、各2TBパーティションを個別に失敗させ、パーティションを再作成してから再度追加する必要があります。最初に書き込み目的のビットマップを追加すると、これが速くなる可能性があります。

mdadm --grow /dev/md0 --bitmap=internal

次に、ディスクごとに個別に、

mdadm /dev/md0 --fail /dev/disk1 # check mdstat for [UUUU] first
mdadm /dev/md0 --remove /dev/disk1
parted /dev/disk -- mklabel gpt mkpart primary 1mib -1mib
mdadm /dev/md0 --re-add /dev/disk1
mdadm --wait /dev/md0 # must wait for sync

それが完了したら、ビットマップを再度削除できます(維持するとパフォーマンスが低下する可能性があります)。

mdadm --grow /dev/md0 --bitmap=none
mdadm --grow /dev/md0 --size=max

最後にあなたのresize2fsまたは何でも。

8
frostschutz