パーティションテーブルを適切に配置するにはどうすればよいですか?


19

私は最初の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バイトオフセットされます」についてどうすればよいかわかりません。そして、適切にフォーマットできるように、ディスクを適切にパーティション分割して一致させる方法。

回答:


17

多くの場所でアライメントがポップアップするので-

  • 4kブロックの「Advanced Format」ハードドライブ
  • SSD
  • RAID
  • LVM

-質問を少し拡大します。

パーティションの整列

「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消去ブロックサイズ合わせたい場合は、SSDにも使用できます(Theodore Tso、Linuxカーネル開発者)。

OPポストでは、mkfs明らかに最適な設定が自動検出されたため、それ以上のアクションは不要でした。

確認する場合、RAIDの関連パラメーターは次のとおりです。

  • ブロックサイズ(ファイルシステムのブロックサイズ、例:4096)
  • ストライプサイズ(mdadmチャンクサイズと同じ、例:64k)
  • ストライド:(stripe size / block size 64k / 4k = 16)
  • ストライプ幅:(stride * #-of-data-disks 4つのディスクRAID 5は3つのデータディスク; 16 * 3 = 48)

Linux Raid Wikiから。さまざまなRAIDレベルとディスク数については、この簡単な計算機もご覧ください。

以下のためにSSD消去ブロックの位置合わせパラメータは次のとおりです。

  • fsブロックサイズ(例:4096)
  • SSD消去ブロックサイズ(例:128k)
  • ストライプ幅:erase-block-size / fs-block-size (例:128k / 4k = 32)

以下からのセオドアのSSDポスト

LVMエクステントの整列

潜在的な問題は、LVMが192kヘッダーを作成することです。これは4kの倍数(4kブロックディスクでは問題ありません)ですが、RAIDストライプサイズ(LVMがRAIDで実行されている場合)またはSSD消去ブロックサイズ(LVMがSSDで実行されている場合)の倍数ではない場合があります。

回避策については、セオドアの投稿を参照してください。


@Marcoどうして?IBM Developer Worksの最初のものには、アライメントされていないパーティションを使用した場合の書き込みパフォーマンスのペナルティのベンチマークグラフと、RAIDのサイドバーがあります。TsoによるSSDアライメントに関するブログ投稿は、これを書いてから少なくとも2回移動しています。リンクを再度更新しましたが、機能し続ける保証はありません。
jgファウスト

:SSD上の代替リンク整列SSDパーティション
JG-ファウスト

8

私の友人は/dev/md1、パーティションを作成せずにmkfs.ex4をすぐに実行できることを指摘したので、パーティションを削除して実行したところ、現在フォーマット中のようです。


6

この方法が一番簡単だと思います

parted -a opt /dev/md0
(parted) u MiB
(parted) rm 1
(parted) mkpart primary 1 100%

または、代替のダーティメソッドは、単純に次のようになります

(parted) mkpart primary ext4 1 -1

partedがパーティションを自動的に最適化することを許可する場合、partedのドキュメントでは、MiBやGiBではなく、MBとGBを使用することを推奨しています。
フェリペアルバレス

1

mkfs.ext4は、RAID上のファイルシステムを64 KiB境界で開始するように思われます。ディスク全体を使用する場合、0から始まり、もちろん64 KiBの倍数になります...

ほとんどのパーティションツールは、今日ではデフォルトで1 MiB境界を使用します(fdiskはおそらく使用しません)。

これは、ほとんどのハードディスクとSSDがデバイス上の論理セクターよりもはるかに大きい仮想セクターを使用しているためです。その結果、ディスクから512バイトの論理セクターを読み取る場合、ハードウェアは実際にはるかに大量のデータを読み取る必要があります。

ソフトウェアRAIDデバイスの場合、同様のことが起こります。そのデータは、デフォルトのmdadm設定で64 KiBの「チャンク」に保存されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.