パーティションは、たとえばより大きなハードドライブにアップグレードする場合など、柔軟性が高いため、Linuxサーバーでは非常に重要です。
しかし、Linuxボックスを構築するときにいくつのパーティションを作成する必要がありますか?各パーティションにどのサイズを設定する必要がありますか?
最後になりましたが、別のディスクにどのパーティションを配置する必要があり(/ home、おそらくより高速なドライブの/ varなどを考えています)、同じドライブでどのパーティションを共有できますか?
適切なパーティショニング構造の計画は、実際に「サーバー」をどのように使用するかを知ることに大きく依存しています。提供される実際のサービスを利用しないランダムなアドバイスは、特に役立つことはありません。
たとえば、mysqlに使用されるdebianベースのボックスの場合、/、/ var、および/ var/lib/mysqlに個別のパーティションが必要になる場合があります。
たくさんの共有ストレージを備えたファイルサーバーになるのでしょうか? /、/ home、および/ srvパーティションが必要になる場合があります。
イカのみを実行しているボックスの場合、/のパーティションと、イカスプールの高速ディスク上の1つのパーティションが必要になる場合があります。
パーティションを計画しているときは、 Filesystem Hierarchy Standard と、選択したディストリビューションが標準から逸脱しているかどうか/どのように逸脱しているかをよく理解しておくと非常に役立ちます。
[〜#〜] lvm [〜#〜] を使用すると、再起動することなく、将来の気分を変えてパーティションを調整するのがはるかに簡単になります。優れたバックアップを簡単に作成できます。
私は常にこれらのパーティションを作成し、昨年の時点では常にLVM上に作成しています。
/ - a few Gig
/usr - 24 Gig and mostly empty
/var - 4 Gig works for me, YMMV
/home - depends on how many users you will have
最も重要なものの1つは/var
-これが別のパーティションである場合、それがいっぱいになっても、ルートパーティションをクラッシュさせることはありません。私はこれを行ったことがありませんが、いくつかは別の/usr
読み取り専用でマウントできるようにします。
そして私は時々これらのパーティションを作成します:
/boot - even 1 Gig is way more than enough
その理由は、RAIDまたはLVMパーティションから起動できるとは限らないためです。したがって、/boot
は単純なext3パーティションにすることができ、/
より高度になります。
大きなファイルが多数ある場合は、これらの大きなファイル用に特定のパーティションを作成して、ファイルシステムを調整して大きなファイルを効率的に保存できるようにすることがあります。サーバーからNFSを提供する場合は、NFS共有用に個別のパーティションを作成するか、NFS共有ごとに個別のパーティションを作成する人もいます。これはあなたのニーズに依存します。
なぜLVMなのか?他の場所での回答で述べたが、ここで言及するのを忘れたように、後で気が変わってパーティションを拡張するのが非常に簡単になります。これは私のお尻をすでに救っています。
これらは一般的なガイドラインです。もちろん、サーバーに特別なニーズがある場合は、それを考慮して、これらのニーズを反映したパーティションを作成することを期待しています。
しばらく続くマシンを構築していて、再構築が不便で、かなり柔軟である必要があると仮定すると、次のようなスキームが必要になるでしょう。
同じサイズの物理ドライブを少なくとも2台取り付けます。この例では、500GB SATAドライブを想定していますが、原則は他のサイズのドライブでも問題なく機能します。
各ドライブを次のようにパーティション化します。
/dev/sda1 500MB
/dev/sda2 100GB
/dev/sda3 the rest
目標は、前面に500 MBの小さなパーティションを配置し、OSとアプリケーション用に中央にかなりのパーティションを配置し、背面に追加データ用のドライブの大部分を配置することです。
/dev/md0
と/dev/sda1
からSWRAID1セット/dev/sdb1
を作成します。対応するパーティションから追加のSWRAID1セット/dev/md1
および/dev/md2
を構築します。
/dev/md0
をext3としてフォーマットします。これは/boot
になります。
/dev/md1
および/dev/md2
をLVM物理ボリュームとしてフォーマットします。
vg_system
を含むLVMボリュームグループ/dev/md1
を作成します。
さまざまなOSパーティション用にvg_system
内に適切なLVMボリュームを作成します。少なくとも、数GBのswap
、/var
、および10GB程度の/
が必要です。 [〜#〜]ノート[〜#〜]:vg_system
!後で\var
のサイズを大きくしたい場合、または/opt
などを追加したい場合は、その追加スペースが必要になります。
vg_data
を含むLVMボリュームグループ/dev/md2
を作成します。
必要に応じて、vg_data
内にLVMボリュームを作成します。少なくとも、かなりの/home
が必要です。また、メールスプール、データベース、Webルート、またはOSの一部ではないその他のデータ用に追加のボリュームが必要になる場合があります。繰り返しますが、上記と同様の理由で、すべてのvg_data
を割り当てないでください。
この戦略の利点は次のとおりです。
ハードウェア障害に対して耐性があります。どちらのドライブもシステム障害を引き起こすことなく障害を起こす可能性があり、ホットスワップコントローラに投資すれば、ダウンタイムなしで回復できます。
将来性があり、拡張可能です。数年後に2 TBドライブを購入すると、それらをマシンに平手打ちし、別のSW RAIDセットにして、LVM物理ボリュームとしてフォーマットし、より多くのスペースが必要なボリュームグループに追加できます(おそらくlv_data
)、次にpvmove
を使用して、古いドライブから新しいドライブにデータを移行します。さらに、主要なOSの更新を大幅に軽減できます。メジャーアップグレードのためにOSを再インストールする必要がある場合(Ahem Red Hat :()、ホームディレクトリ(およびメールスプールなど、vg_data
に入れたものすべて)を保持しながら再インストールできます。
この戦略の欠点はほとんどありません。少し複雑だと思いますが、RAID 1のおかげで書き込みのパフォーマンスが低下します。しかし、私はここ数年、これらの原則に従ってワークステーションとスタンドアロンサーバーを構築してきましたが、私の経験では、やがて私が欲しかったのに、これらの線に沿って機械を作らないでください。
-スティーブ
追伸新しいマシンを迅速かつ簡単にプロビジョニングするためのインフラストラクチャが整っている場合、このようなシステムはやり過ぎです。 RAIDセットやLVMをいじるのではなく、何か変更が必要な場合はマシンを再構築してください。
Eddieが言及したパーティションに加えて、私は通常、さらに2つの別々のパーティションを作成します
/ tmp-別の/ varパーティションを作成したのと同じ理由で(以前は一時スペースがすべていっぱいになりました)。私は通常1〜2GBで行きます
/ usr/local-これにより、個別にインストールされたすべてのソフトウェアを吹き飛ばすことなく、必要に応じて/ usrをアップグレードおよびクリーンアップできます。ここでのサイズは、インストールする外部ソフトウェアの量によって異なります。私は通常、約10 GBを使用しますが、最近は少し小さいと感じています。
私は常に/ homeを最後にし、ディスクの残りの部分をそれで埋めます。
/ bootパーティションでは、100 Mbを超えることはなく、スペースの問題が発生することもありません(最終的に古いカーネルをクリーンアップします)。それは本当に非常に小さい場合があります。
また、スワップパーティションも忘れないでください。
何年もの間、私が使用したすべてのコンピューターはデュアルブートシステムであり、Linux側では、このスキーマにほとんど固執していました(ここでは、サーバー関連のものではなく、パーソナルワークステーションについて話しているので、マイレージは異なる場合があります)
/ - main thing
/boot - not that relevant, since cylinder being < 1024 and
exotic filesystems are no longer an issue
/home - handy if you upgrade your laptop with each new distro :-)
前回のアップグレードでは、/
パーティションを消去して、最初からインストールを行いました。そのため、別の/opt
または/usr/local
パーティションがあれば良かったと思い、そこに置いたすべてのもの(Java、Eclipse ...私は通常気にしません)を再インストールする手間を省きました。ディストリビューションパッケージのもの)。
そこでハードウェアRAIDを使用しないと仮定すると、Linuxでは常にRAIDの上にLVMを使用します。単一ディスク構成でも。その理由は、(LVMグループを拡張することによって)ストレージスペースを追加するか、冗長性オプションを変更する(たとえば、「奇妙な」単一ディスクraid1構成をミラーリングされたものまたはRAID10に変換するなど)オプションがあるためです。
あなたの質問に答えるために、私は通常、一般的なサーバーに対してこれに似たものを持っています。 2つのディスク(たとえば1RUのDell)から始めて、両方とも次のように分割されます。
次に、すべてのボリュームをLVMボリュームとして作成します。*/*/var */tmp */home */opt
管理するのが面倒なので、ファイルシステムを作りすぎないようにします。ディスクが不足していると、多くのファイルシステムに空き領域ができてしまいますが、作業を行うには十分ではありません。
別のファイルシステム上の/ homeと/ tmpは常に良い考えです。たくさんのものを入れる予定がない限り、通常は/ optを分離しません。 (同じソフトウェアスタックを必要とするサーバーが多数ある場合は、NFSが/ optのより良いオプションである可能性があります)
要するに、理由がない限り、すべてにLVMを使用します。そうすることで、変更するオプションを利用できます。
また、ログが/ varをいっぱいにしないようにログサーバーを使用してください。
ほとんどのマシンでは、
100MB /boot
1GB * NUMBER_OF_USERS /home
10GB /var/log
10GB /var
REST /
場合によっては、これを切り替える必要がありますが、ユーザーがサーバー上で1GBを超えるスペースを取得しないようにすることについては、私はかなり断固としています。さらに必要な場合は、毎晩cronを介して削除されることを理解した上で、/ tmpを使用できます。
ボリュームグループ-rootvg
ボリュームグループ-datavg
ソフトウェア用に別の/ usrを作成できますが、私の場合、ボックスは再インストールされるため、独自のパーティションを取得する必要はありません。