私は最初のRAID5アレイを構築中です。 mdadmを使用して、次のセットアップを作成しました。
root@bondigas:~# mdadm --detail /dev/md1
/dev/md1:
Version : 00.90
Creation Time : Wed Oct 20 20:00:41 2010
Raid Level : raid5
Array Size : 5860543488 (5589.05 GiB 6001.20 GB)
Used Dev Size : 1953514496 (1863.02 GiB 2000.40 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Wed Oct 20 20:13:48 2010
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Rebuild Status : 1% complete
UUID : f6dc829e:aa29b476:edd1ef19:85032322 (local to Host bondigas)
Events : 0.12
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
4 8 64 3 spare rebuilding /dev/sde
それが進行中に、私は次のコマンドで獣をフォーマットすることにしました:
root@bondigas:~# mkfs.ext4 /dev/md1p1
mke2fs 1.41.11 (14-Mar-2010)
/dev/md1p1 alignment is offset by 63488 bytes.
This may result in very poor performance, (re)-partitioning suggested.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=16 blocks, Stripe width=48 blocks
97853440 inodes, 391394047 blocks
19569702 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
11945 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Writing inode tables: ^C 27/11945
root@bondigas:~# ^C
「/ dev/md1p1アライメントは63488バイトオフセットされます」についてどうすればよいかわかりません。そして、適切にフォーマットできるように、ディスクを適切にパーティション化して一致させる方法。
私の友人は、パーティションを分割せずに/dev/md1
でmkfs.ex4を実行できることを指摘したので、パーティションを削除して実行したところ、フォーマット中のようです。
多くの場所でアライメントがポップアップするので-
-質問を少し拡大します。
"4kBセクターディスク上のLinux" (IBM developerWorks)は、fdisk、parted、GPT fdiskを使用して手順を説明します。
Fdiskの場合:
Sudo fdisk /dev/XXX
c # turn off DOS compatibility
u # switch to sector units
p # print current partitions, check that start sectors are multiples of 8
# for a new partition:
n # new partition
<select primary/secondary and partition #>
first sector: 2048
# 2048 is default in recent fdisk,
# and is compatible with Vista and Win 7,
# 4k-sector disks and all common RAID stripe sizes
これは主にRAIDに関連しています(レベル1ではなく、レベル0、5、および6)。ファイルシステムは、ストライプサイズの知識で作成された方がパフォーマンスが向上します。
SSD消去ブロックサイズにファイルシステムを合わせる (Linuxカーネル開発者Theodore Tso)を使用する場合は、SSDにも使用できます。
OP投稿でmkfs
は明らかに最適な設定を自動検出したため、それ以上のアクションは不要でした。
確認したい場合、RAIDの関連パラメーターは次のとおりです。
stripe size / block size
(例:64k/4k = 16)stride * #-of-data-disks
(4つのディスクRAID 5は3つのデータディスク; 16 * 3 = 48)From Linux Raid Wiki 。 この単純な計算機 さまざまなRAIDレベルとディスク数についても参照してください。
SSD消去ブロックアライメントの場合、パラメーターは次のとおりです。
From TheodoreのSSD投稿 。
潜在的な問題は、LVMが192kヘッダーを作成することです。これは4kの倍数(4kブロックディスクでは問題ありません)ですが、RAIDストライプサイズ(LVMがRAIDで実行されている場合)またはSSD消去ブロックサイズ(LVMがSSDで実行されている場合)の倍数ではない場合があります。
回避策については Theodoreの投稿 をご覧ください。
この方法が一番簡単だと思います
parted -a opt /dev/md0
(parted) u MiB
(parted) rm 1
(parted) mkpart primary 1 100%
または、代替のダーティメソッドは、単純に次のようになります
(parted) mkpart primary ext4 1 -1
Mkfs.ext4は、RAID上のファイルシステムを64 KiB境界で開始するように思われます。ディスク全体を使用する場合、0から始まり、もちろん64 KiBの倍数になります...
ほとんどのパーティションツールは、最近ではデフォルトで1 MiB境界を使用します(fdiskはおそらく使用しません)。
その理由は、ほとんどのハードディスクとSSDが、論理セクタよりもはるかに大きいデバイス上の物理セクタを使用するためです。その結果、ディスクから512バイトの論理セクターを読み取る場合、ハードウェアは実際にはるかに大量のデータを読み取る必要があります。
ソフトウェアRAIDデバイスの場合、同様のことが起こります。そのデータは、デフォルトのmdadm設定で64 KiBの「チャンク」に保存されます。