web-dev-qa-db-ja.com

SSDと2台のHDDを使用したRAIDアドバイス

1台の128GB SSDと2台の1TB HDDを備えた新しいマシンがあります。 SSDにはOSがあり、最初の考えは、ユーザーデータ用に2つのHDDをRAID 1に入れることでした。

さらに考えた後、私は他に2つのセットアップを思いついたが、今私は疑問に思っている:)誰かが最良のセットアップになるとアドバイスできますか?

1:RAID 1のシングルSSDおよびHDD(当初の考え)

2:HDDに2つのパーティションを作成します(128GBと872GB)。 2つの872GBをRAID 1に入れ、SSDと1つの128GB HDDパーティションで別のRAID 1を作成します。

3:HDD(750/250)に2つのパーティションを作成し、705GBをRAID 1に配置し、2つの250GBをバックアップとして使用し、これらのパーティション(の1つ)にSSDの自動スナップショットを作成します。

2つの主な質問は次のとおりです。

ドライブの一部のみでRAIDアレイを作成し、そのドライブの他の部分を積極的に使用することをお勧めしますか、それとも常にディスク全体を使用する必要がありますか?

SSDとHDDでRAID 1アレイを作成することをお勧めしますか、それともSSDの速度の利点全体を吹き飛ばすでしょうか?

2
Nin

ドライブの一部のみでRAIDアレイを作成し、そのドライブの他の部分を積極的に使用することをお勧めしますか、それとも常にディスク全体を使用する必要がありますか?

アドバイスは、できる限り同じようなデバイスを使用することです。しかし、そのアドバイスのどれが迷信であるかはわかりませんが、最初にこれを見てみましょう:

SSDとHDDでRAID 1アレイを作成することをお勧めしますか、それともSSDの速度の利点全体を吹き飛ばすでしょうか?

いいえ、それをしないでください、あなたはスピードを吹き飛ばします。それらが異なるデバイスなどであるという事実とは別に、私が確信していることの1つは、最も遅いディスクの速度で作業するために速度が低下することです->あなたのssd-hddコンボが道になりますSSDより遅い:

SSDに対してこれを行うべきではありません。最初のオプションが最適です。安全なユーザースペースとスピーディなシステムディスクを提供してください。そのディスクをバックアップします。 (RAIDはバックアップ戦略ではありません)

2
Nanne

最初のオプションは完全に愚かではありません。 「ハイブリッドRAID1」は、適切に構成されていれば機能します。 SSDがおかしくなり始めて箱から出されるまで、私はこのセットアップを自分で実行しました。

ガイダンスについては、次の記事をご覧ください。

http://tansi.info/hybrid/

http://www.vinsec.net/2012/05/hybrid-hdd-ssd-raid1.html

https://superuser.com/questions/293144/combining-ssd-and-hard-disk-in-software-raid1

3
humppe

可能な解決策のプールに別の推奨事項を追加したいと思います。 btrfs ' btrbkcronjob と組み合わせて、サブボリュームおよびスナップショット機能に基づいてセットアップすることをお勧めします。

これを設定するのは必ずしも簡単ではありませんが、スキルセットと以前の経験に大きく依存します。ネット上にはあなたを助ける多くの文献があります。最終的には、SSDを定期的にバックアップするための非常に柔軟で高速な方法で、ニーズに最適なソリューションを作成するための多くのオプションが提供されます。

注意事項:どんな形式のRAIDでも、通常のバックアップを置き換えることはできませんし、置き換えないでください。そのマニュアル

一般的なセットアップ

私の提案の一般的なアイデアは、ルートおよび関連するサブボリュームを含むbtrfsシステムドライブとしてSSDを使用し、データおよびバックアップドライブとしてbtrfs raid1の2つのHDDを使用することです。

これにより、btrbkを使用すると、システムSSDの自動増分バックアップをバックアップHDDに実行できます。また、HDDはミラーとして設定されているため、すべてのバックアップもミラーリングされたままになります。

さらに、サブボリュームを送受信するbtrfs機能(btrbkがバックアップの作成に使用する機能)を使用すると、システムとデータドライブ間でデータとバックアップを自由に移動できます。これにより、高速SSDに保存するデータを変更しながら、すべてのデータのバージョン付きおよびミラー化されたバックアップを常に維持できます。

Btrfsのセットアップ

開始するには、SSDにUbuntuを再インストールし、ルートファイルシステムとしてbtrfsを選択するか、既存のインストールファイルシステムをbtrfsに変換する必要があります。両方の方法は btrfsについてのUbuntuのコミュニティヘルプページ で説明されています。これは、Ubuntuでbtrfsを使い始めたばかりの場合、一般的に読むのに適しています。

次に、次のコマンドを使用してHDDをbtrfs raid1に変換する必要があります。/dev/sdx/dev/sdyは2つのドライブです(これらのドライブ上のすべてのデータは失った!)

mkfs.btrfs -d raid1 /dev/sdx /dev/sdy

スナップショットまたはbtrfsを初めて使用する場合は、この瞬間に、実際のデータがraid1に書き込まれる前に、フォルダー、サブボリューム、およびスナップショットの違いを理解し、いくつかのコマンドを試してみることをお勧めします。

データを整理するには多くの方法があり、btrfsカーネルwikiのsysadminガイドでいくつかの例を見つけることができます。

その1つの方法は、btrfsルート(subvolid0または5)をどこかにマウントし、それを使用してサブボリュームとスナップショットを管理し、さらにすべてのデータを適切なサブボリュームに保存することです。ファイルシステムの便利な場所にマウントします。これにより、任意のデータのスナップショット、移動、回復、および置換を行うことができます。

具体的な例としては、次のことを意味します(すべてのコマンドはroot/with Sudoとして実行する必要があります)。

  • システムのbtrfsルート(subvolid=0)を/btrfs/systemにマウントします
  • データbtrfs raid1ルート(subvolid=0)を/btrfs/dataにマウントします

これらのボリュームを手動でマウントする代わりに、マウントする前に fstab/etc/fstab)に追加して、ブート時にもマウントされるようにします。 UUIDでマウントすることをお勧めします。UUIDは、Sudo btrfs filesystem showを実行して取得できます。

UUID=<UUID of system> /btrfs/system btrfs defaults,subvolid=0 0 0
UUID=<UUID of data> /btrfs/data btrfs defaults,subvolid=0 0 0

ここでそれらをマウントします:

Sudo mkdir /btrfs
Sudo mkdir /btrfs/data
Sudo mount /btrfs/data
Sudo mkdir /btrfs/system
Sudo mount /btrfs/system

これで、各btrfsファイルシステムに必要な追加のサブボリュームを追加できます。 Ubuntuは通常、デフォルトでルート/subvol=@)およびホームディレクトリ/homesubvol=@home)のサブボリュームを作成します。 /varまたは/tmpを独自のサブボリュームにするか、アプリケーション固有のサブボリュームを作成するのが一般的です。 /var/www/の場合。

個人的には、すべてのサブボリュームをbtrfsルートに保持し、mountおよびfstabエントリを使用して特定の場所にマウントすることを好みます。

たとえば、HDD raid1に音楽コレクションのサブボリュームを作成するには、次のようにします。

btrfs subvolume create /btrfs/data/@music

次に、次のfstabエントリを使用して/musicにマウントします。

UUID=<UUID of data> /music btrfs defaults,subvol=@music 0 0

Btrbkのセットアップ

次に、スナップショットを作成してHDD RAIDにバックアップするサブボリュームにbtrbkを設定する必要があります。

@@homeを定期的にバックアップし、バックアップの定期的な間隔の履歴を保持する方法の簡単な例として、次を/etc/btrbk.confに書き込むことができます。

# The long timestamp recommended for more then one snapshot a day
timestamp_format        long

# Set time spacing of snapshots kept on SSD
snapshot_preserve_min      2d
snapshot_preserve          7d 4w 3m

# Set time spacing of snapshots kept on HDD raid
target_preserve_min        no
target_preserve            8w *m

snapshot_dir               /btrfs/system/snapshots

volume /btrfs/system
  subvolume @
    target send-receive /btrfs/data/backup/

  subvolume @home
    target send-receive /btrfs/data/backup/

詳細については、 btrbk documentation をお読みください。また、スナップショットからデータを回復する方法についても説明します。

最後に、Sudo crontab -ecrontab にbtrbkを追加する必要があります。例えば。毎日正午にbtrbkスナップショットとバックアップを実行するには、次の行を追加します。

0 12 * * * /path/of/btrbk run

その他の考慮事項

スワップ

一般的に、少なくとも8 GBのRAMを備えた最新のパーソナルコンピューターシステムでは スワップスペース の必要性はますます少なくなっていますが、特に、 SSD。スワッピングのパフォーマンスヒットはそれほど顕著ではありません。したがって、一般的には、スワップファイルまたはパーティションをセットアップすることをお勧めします。

つまり、 btrfsはスワップファイルをサポートしていません 。つまり、システムでスワップを使用できるようにするには、SSDスペースの一部を別のスワップパーティションに割り当てる必要があります。

btrfs SSD検出

Btrfsは、マウントされたファイルシステムがSSDにあるかどうかを自動的に検出し、その場合のウェアレベリングを有効にします。

ただし、最新のSSDは自動的に摩耗レベルを上げると同時に、空き領域の断片化の問題を引き起こすため、これはもう必要ありません。したがって、nossdオプションを使用してSSDをマウントすることを個人的にお勧めします。

詳細は btrfs kernel wiki にあります。

ファイルシステムの圧縮

Btrfsは、透過的なファイル圧縮をサポートしています。 compressオプションをマウントフラグに追加すると、書き込まれたすべての新しいファイルに対して有効になります。

たとえば、以前に例として使用した@musicサブボリュームの圧縮を有効にするには、fstabエントリを次のように変更します。

UUID=<UUID of data> /music btrfs defaults,compress,subvol=@music 0 0

この変更を適用するには、影響を受けるサブボリュームの再マウント(アンマウントと再マウント)を忘れないでください。

ほとんどの最近のコンピューターでは、書き込み前および読み取り後のファイル圧縮のオーバーヘッドはほとんど無視できます。大きいが十分に圧縮可能なファイルを低速のディスクに書き込むと、圧縮が有効になっていると高速になる場合があります。

速度が心配な場合は、compress=lzoを使用して、より高速ですが効率の低いLZO圧縮を使用することもできます。

詳細については、 btrfs kernel wiki をご覧ください。

ホームフォルダーの場所

Ubuntuは、デフォルトでシステムフォルダーの@homeサブボリュームにホームフォルダーを配置します。 HDDミラーに家に移動するかどうかは、個人の好み次第です。上で示したように、SSDに保存してbtrbkバックアップに含めることもできます。

バックアップの時間間隔

私の例では、すべてのサブボリュームに同じ保持時間を設定していますが、btrbkでは、各サブボリュームに個別にこの時間を設定できます。

また、異なる構成でbtrbkを異なる間隔(-cオプションを参照)で実行して、AMDまたはバックアップするスナップショットのサブボリュームのタイミングをさらに制御できます。

スナップショットは迅速に作成されるため、btrfsのコピーオンライトの性質により、btrbkで1時間ごとにスナップショットを作成することもできますが、自宅のように頻繁に変更されるフォルダーの場合は、1日に1回だけバックアップディスクに転送しますフォルダ。

ビット腐敗の検出

Btrfsビット腐敗/データ破損の検出(およびraid1の場合の自動修復)を使用するには、定期的にbtrfsスクラブを実行する必要があります。 cronジョブとして:

btrfs scrub start /btrfs/system
btrfs scrub start /btrfs/data
2
Florian Franzen

最初の質問

パフォーマンス上の理由から、これを行わないでください。他のパーティションでI/Oを実行すると、パフォーマンスが低下します。ただし、パフォーマンスが重要ではなく冗長性が重要な場合は、これを検討できます。

二番目の質問

いいえ、これをしないでください。チェーンは、ここで最も弱いリンクと同じくらい強力です。アレイはHDDのように動作し、高価なSSDを無駄にします。

代わりに、使用...

dm-cache または flashcache (非常に高度で実験的)。 SSDを低速のハードドライブのキャッシュ(読み取りおよび書き込み)として使用できます。耐久性とパフォーマンスのバランスを見つけるための大幅なパフォーマンスの向上と調整が可能です。

参照: flashcache/bcacheをインストールして使用してHDDをSSDにキャッシュする方法

2
gertvdijk