web-dev-qa-db-ja.com

fdiskにセクター63境界を使用するように強制しても安全ですか?

何らかの理由で、私のVPS(Debian 8を実行)の最初のパーティションは(2048ではなく)セクター63に揃えられています

Model: VMware Virtual disk (scsi)
Disk /dev/sda: 314572800s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start      End         Size        Type     File system     Flags
 1      63s        79971569s   79971507s   primary  ext4            boot
 2      79971570s  83875364s   3903795s    primary  linux-swap(v1)
        83875365s  314572799s  230697435s           Free Space

ここで、パーティションのサイズを変更して空き領域を割り当てたいと思いますが、残念ながらfdiskは最初のセクターを2048から開始します。しかし here を読んだように、このコマンドを使用してfdiskを63から強制的に開始することができます。

fdisk -c=dos -u=cylinders /dev/sda

これはどれくらい安全ですか?さらに、この方法は廃止されているため、VPSのパフォーマンスに悪影響を及ぼしますか?

4
wouter205

サイズを拡張する場合は、パーティションの削除が含まれるため、開始する番号で再作成する必要があります。

それ以外の場合は、認識されず、最悪の場合、データが破損する可能性があります。

そのVPSが他のVMを作成するためのテンプレートである場合は、最初に*および*データ/セクターをセクター2048に再作成/移動するのに苦労します。

これはVMなので、パーティションを移動したい場合は、正確には移動しません。側にパーティションを作成し、データをコピーして、コピーパーティションで起動します。それが仮想マシンでの作業の美しさであり、物事をテストする余地があります。

PS。私の個人的な意見としては、パフォーマンスのわずかな向上はセクター63から移動する価値がありません。マシンがリタイアされるのを待ちます。それは遅かれ早かれ起こるでしょう。

パーティションの配置については:

パーティションを4096バイト境界に揃えたままにします。そのようにして、実際のセクターはほとんど仮想セクターと整合していることが確実であり、VMWareはハイパーバイザー/ VMがハードウェアからより良いパフォーマンスを引き出すでしょう。

非整列パーティションがパフォーマンスの問題である理由を理解するには、purestorage.comの次の画像を参照してください。

unaligned

業界のストレージスペシャリストのホワイトペーパーを参照して、現在のベストプラティックスをよりよく理解する:

MicrosoftやRed HatなどのLinuxディストリビューターが提供する最新のベンダーサポートのオペレーティングシステム(OS)では、ファイルシステムパーティションを仮想環境の基盤となるストレージシステムのブロックに合わせるための調整が不要になりました。

(例:「デフォルト設定をそのままにします」)

ただし、元の質問に引き続き回答するには、いくつかのリンクされたホワイトペーパーにアクセスしてください。

VMDKとLUNの両方でパーティションを4K境界に揃えることは、推奨されるベストプラクティスです

そしてまた:

各デバイスの出力では、開始にセクターサイズ(通常、fdisk出力では512)を掛けてから、4096で除算します。結果が整数(整数)の場合は、ALIGNED、そうでない場合は、MISALIGNEDです。 。

したがって、セクター63にパーティションを作成することに関する質問を確認してください。

512 * 63/4096 = 7.875 =>不正確

私はおそらく2048で将来的にデフォルトを使用してそのままにします。確認してみましょう。

512 * 2048/4096 = 156 =>調整済み

参照:

FAQ:ゲストVM VMware vSphere、その他の仮想環境、およびNetAppストレージシステムのファイルシステムパーティション/ディスクアライメント

ゲストの修正方法VM VMware vSphere 5.x環境でのデータパーティションアライメント

VMWare ESXでブロックを整列する方法

4
Rui F Ribeiro

参考のため:

  • 従来の512bセクタードライブのセクター2048は、最初のセクター 1MBマークです。
  • セクター63はセクターの右側before 32kマークであり、ほとんどのハードディスクの最初のプラッターの最初のトラックの最後のセクターに対応していました(少なくとも、ディスクジオメトリが合理的に標準化されると)。

では、なぜこれらがまったく関連性があるのでしょうか。

従来、セクター1でパーティションを開始しない理由はいくつかあります。

  • ブートローダー用のスペースを残します。 MBRフォーマットは、ブートローダーに40バイト強しか残しません。それはCP/MとDOSの時代には十分だったかもしれませんが、すぐに小さくなりすぎました。そのため、最初のプラッターの(ほぼ全体)最初のトラックをブートローダー用に残しておくという規則になります。たとえば、GRUBは、MBRパーティションディスクで使用する場合に実際にこれを必要とします。
  • また、複数の方法でパーティション分割されたディスクを処理する場合にも重要です。一部のパーティションテーブルフォーマットはセクター0で開始しません。これの最近の例はGPTです。これはセクター1で始まり、通常はセクター31まで続きます。はるかに古い例は、AppleクラシックOSのシステム。これははるかにニッチな使用法ですが、GPTのため、少なくともある程度は関連性があります。
  • ハードドライブのジオメトリの自然な境界(シリンダーやトラックの境界など)で開始および終了するようにパーティションを調整すると、パフォーマンスが向上します。セクター63はたまたま自然の境界にあり、ほとんどのファイルシステムは実際には最初のセクターに頻繁に触れることはありません(仮にあったとしても)。そのため、新しいシリンダーの開始時に2番目のセクターが配置され、通常は新しいトラックの開始。これは通常、特定の古いファイルシステムで非常に頻繁にアクセスされます(他のファイルシステムではまったくそうではありませんが、たとえばext4やBTRFSなどは、通常、決してアクセスしません)。

ポイント1と3のため、セクター63が標準になりました。ただし、以下で概説する理由により、ほとんど使用されていません。

では、なぜ1MBに増えたのですか?

これは少しトリッキーです。 なぜ 1MBが選択されたのか、またはこれが標準になり始めたときでさえ、歴史的に参照された実際の決定的な回答は見ていません。ただし、ITにはいくつかの利点があります。

  • セクター63から開始するのとは異なり、512bと4kの両方のセクターサイズで正しく整列されます。これにより、通常、ファイルシステム自体のほとんどのfilesが整列されなくなります(これは元々問題ではありませんでした) FAT12とFAT16では、通常デフォルトで512bセクターで動作するようになっています)。
  • 多くのネットワークストレージプロトコルは、読み取りと書き込みの最大ブロックサイズとして1MBを定義しています。このようにパーティションを調整することにより、ブロックプロトコルと正しく調整され、部分的な書き込みのみを行いたい場合にRMWサイクルを実行する必要がなくなる可能性があります。
  • 最近のSSDのほとんどは512bまたは4kセクターを備えていますが、実際には内部ではるかに大きなブロックで動作します。通常、これらは最近2MBまたは4MBブロックですが、古いものの多くは1MBブロックを使用していました。これらのブロックに正しく合わせると、実際には一部のSSDの寿命が大幅に改善され、書き込みパフォーマンスも大幅に改善されます。

はい、でも元の質問はどうですか?

上記を踏まえ、ベースとして2048に移行すると、実際にはVMのパフォーマンスが少し向上するはずです。

また、完全に安全である必要があります。ファイルの代わりにファイルシステム内の正確なブロック位置を参照している可能性があるため、移動後にブートローダーを再インストールしてください。移動後の正しい位置を指し示すことはありません。

1