何らかの理由で私のVPS(Debian 8を実行)の最初のパーティションは、セクタ63(2048ではなく)に配置されています。
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で始まります。しかし、私が読んでみるとここfdisk
63から強制的に起動するには、このコマンドを使用します。
fdisk -c=dos -u=cylinders /dev/sda
どのくらい安全ですか?また、この方法は使用されなくなったため、VPSのパフォーマンスが低下しますか?
答え1
サイズを拡張する場合はパーティションの削除が含まれるため、開始する番号に関係なくパーティションを再作成する必要があります。
そうしないと認識できず、最悪の場合はデータが破損する可能性があります。
このVPSが別のVMを作成するためのテンプレートである場合、開始*および*データ/セクタを2048セクタに再生成/移動する手間がかかります。
仮想マシンなので、パーティションを移動したい場合は、完全に移動せずにサイドにパーティションを作成し、データをコピーしてコピーしたパーティションから起動します。これが仮想マシンの使用の利点です。テストできるスペースが増えます。
PS。私の個人的な意見では、小さなパフォーマンスの向上は63セクターの外に移動する価値がありません。近いうちに機械が廃棄されるのを待ちます。
パーティションのソートの場合:
パーティションを4096バイトの境界に揃えようとしています。このように、実際のセクターはデフォルトで仮想セクターと一致し、VMWareを使用すると、ハイパーバイザー/ VMがハードウェアでより良いパフォーマンスを得ることができます。
誤ってソートされたパーティションがパフォーマンスの問題を引き起こす可能性がある理由を理解するには、purestorage.comで次の画像を参照してください。
業界のストレージ専門家によって書かれたこのホワイトペーパーをチェックして、何が何であるかをよりよく理解してください。現在のベストプラクティス:
MicrosoftおよびLinuxディストリビュータ(Red Hatなど)の最新のベンダーサポートオペレーティングシステム(OS)では、仮想環境のプライマリストレージシステムブロックにファイルシステムパーティションを合わせるための調整は必要ありません。
(例:「デフォルト設定の維持」)
ただし、元の質問への回答を続けるために、次のようないくつかのリンクされたホワイトペーパーがあります。
推奨されるベストプラクティスは、VMDKとLUNのパーティションを4K境界に合わせることです。
そして:
各デバイスの出力の開始位置にセクタサイズ(通常はfdisk出力では512)を掛けて4096で割ります。結果が整数(整数)の場合はALIGNED、それ以外の場合はMISALIGNEDです。
したがって、セクタ 63 でパーティションの作成に関する質問を確認してください。
512*63/4096 = 7.875 => 整列しない
今後もデフォルトの2048を使用して維持することができます。確認してみましょう:
512*2048/4096=156=>ソート
引用:
FAQ:VMware vSphere、その他の仮想環境、およびNetAppストレージシステム用のゲスト仮想マシンファイルシステムのパーティション/ディスクの並べ替え
答え2
参考までに:
- 既存の512bセクタドライブのセクタ2048が第1セクタである。後ろに1MBの表示。
- セクタ63は右セクタである。今後32kマークは、もともとほとんどのハードディスクの最初のプラッタの最初のトラックの最後のセクタに対応します(少なくともディスク構造が合理的に標準化されるまで)。
それでは、なぜこれらは関連しているのですか?
パーティショニングが通常セクター 1 で始まらない理由はいくつかあります。
- ブートローダのためのスペースを残します。 MBR形式はブートローダ用に40バイト余りを残します。 CP/MとDOS時代にはこの程度で十分でしたが、これまで小さすぎました。したがって、最初のプラッタの最初のトラック(ほぼ全体)をブートローダに残すことが慣例です。たとえば、MBRパーティション・ディスクでGRUBを使用する場合、これは実際に必要です。
- さまざまな方法でパーティション化されたディスクを処理するときにも重要です。一部のパーティション表形式は、セクター0から始まらない。現代的な例は、セクタ1から始まり、一般にセクタ31まで上がるGPTである。古い例は、クラシックオペレーティングシステムがインストールされているアップルシステムで使用されるパーティションテーブル形式です。これはもう少しニッチな使い方ですが、GPTのおかげでまだある程度関連性があります。
- シリンダーやトラックの境界など、ハードドライブの幾何学的構造の自然な境界で開始および終了するようにパーティションを配置すると、パフォーマンスが向上する可能性があります。セクタ63は自然な境界にあり、ほとんどのファイルシステムは実際には最初のセクタに頻繁に触れないため、2番目のセクタを新しいシリンダの先頭に配置し、通常は配置されます。いくつかの古いファイルシステムでは非常に頻繁にアクセスされることが多い新しいトラックの先頭(他のファイルシステムでは通常は触れないext4やBTRFSのようにまったくアクセスされません)
ポイント1と3のため、セクター63はついに標準になりました。しかし、以下に説明する理由によりほとんど使用されなくなりました。
さて、それではなぜ1MBに増えましたか?
これは少しトリッキーです。実際の明確な歴史的参照の答えを見たことはありません。なぜこれが標準になり始めても、1MBを選択してください。しかし、ITにはいくつかの利点があります。
- 一般に、ほとんどの結果をもたらすセクタ63から始まるのとは対照的に、512bおよび4kセクタサイズに対して正しく整列される。文書ファイルシステム自体が正しく整列していません(FAT12とFAT16は通常512bセクタを使用して内部的に動作するため、最初は問題ではありませんでした)。
- 多くのネットワークストレージプロトコルは、読み書きの最大ブロックサイズを1MBと定義しています。このようにパーティションをソートすると、最終的にこれらのブロックプロトコルに合わせて適切にソートできるため、部分書き込みのみを実行したい場合はRMWサイクルを実行する必要がある可能性を回避できます。
- ほとんどの最新のSSDには512bまたは4kセクタがありますが、実際には内部的に大きなブロックを使用して動作します。通常、これらのブロックは2MBまたは4MBのブロックですが、多くの古いブロックは1MBのブロックを使用します。これらのブロックを適切にソートすると、実際には一部のSSDの予想寿命が大幅に向上し、書き込みパフォーマンスも大幅に向上します。
いいですね。しかし、元の質問はどうですか?
上記を考慮すると、デフォルトで2048に変更すると、実際に仮想マシンのパフォーマンスがわずかに向上します。
また、完全に安全でなければなりません。移動後に正しい場所を指さないファイルではなく、ファイルシステムの正確なブロック位置を参照できるため、移動後にブートローダを再インストールしてください。
答え3
- partitions を使用する場合、
fdisk
開始セクタは 2048+ です。 - を使用すると、
cfdisk
初期インストール後にディスクを追加すると、この現象が発生する可能性があり、起動セクタは63になる可能性があります。
したがって、ディスクがセクタ63で始まり、パーティションのサイズを変更するcfdisk
代わりにfdisk
。
ProxMoxで仮想ディスクを追加してサイズ変更するときにこの問題が発生しました。基本的に私が/dev/sda*
使用するものを変更する必要がある場合、fdisk
またはパーティションのサイズを変更する必要がある場合/dev/sdb|c|d
は、cfdisk
これを一生懸命学びました。