web-dev-qa-db-ja.com

zfs / zpoolをLVMフォーマットのディスクにセットアップできますか

ラップトップの500GBディスクにLVMを使用してUbuntu14.04をセットアップしています。 zfs/zpoolでセットアップ/プレイアラウンドしたい。私のデータを失うことなくこれのための最良のアプローチは何ですか

3
Shenal Silva

ZFSで「遊んで」みたいだけだとすると最も簡単なオプションはおそらくファイルでバックアップされたプールです。別の方法は、LVM内に1つ以上の論理ボリュームを作成し、それらを使用することです。

ZFSの優れた点の1つは、ランダムI/O対応の形式でデータを格納できるほぼすべてのものを提供でき、「正常に機能する」ことです。 実稼働環境では、通常、ZFSにディスク全体を提供します(または複数のディスク全体)、パーティション化などを処理させますが、試してみて、ZFSがどのように機能するかを理解するために、ファイル-裏付けのあるプールは、ほとんどの場合完全に適切です。

実際、完全なストレージレイアウトに似たファイルバックアッププールをすぐに利用できるようにすることをお勧めします。これにより、さまざまな変更を安全にテストし、コミットする前に結果を観察できるためです。 ZFSプールを変更する際の間違いは、コストがかかる可能性があります。

ファイルバックアッププールを作成するには、最初に適切なサイズのファイルのセットを作成します。各デバイス(ファイル)が2 GBの4デバイスのraidz1プールを作成するので、次のようにします。

Sudo mkdir /.zfs
Sudo dd if=/dev/zero of=/.zfs/disk1 bs=1M count=2048
Sudo dd if=/dev/zero of=/.zfs/disk2 bs=1M count=2048
Sudo dd if=/dev/zero of=/.zfs/disk3 bs=1M count=2048
Sudo dd if=/dev/zero of=/.zfs/disk4 bs=1M count=2048
Sudo chmod 0700 /.zfs

これにより、/。zfsにそれぞれdisk1からdisk4という名前の4つのファイルが作成されます。各ファイルのサイズは2 GiBであり、raidz1のオーバーヘッドを考慮すると、6を少し下回る使用可能なストレージ容量が得られますGiB(raidz1では1つデバイスの一部はパリティデータに使用されるため、使用できません)。

次に、プールを作成します(tankはZFSプールの通常の例の名前です)。

Sudo zpool create tank raidz /.zfs/disk1 /.zfs/disk2 /.zfs/disk3 /.zfs/disk4

これは、デフォルトを使用してtankという名前のプールを作成し、作成した4つのファイルを使用してそのプールに1つのvdevを設定することを意味します。プールは作成されると自動的にインポートされ、そのルートファイルシステムは/tankにマウントされます。 Sudo zpool statusを使用して結果を観察できます。これにより、次のようなものが出力されます。

  pool: tank
 state: ONLINE
  scan: none requested
config:

    NAME             STATE     READ WRITE CKSUM
    tank             ONLINE       0     0     0
      raidz1-0       ONLINE       0     0     0
        /.zfs/disk1  ONLINE       0     0     0
        /.zfs/disk2  ONLINE       0     0     0
        /.zfs/disk3  ONLINE       0     0     0
        /.zfs/disk4  ONLINE       0     0     0

errors: No known data errors

Sudo zpool listを使用して、プールの生のサイズを確認できます。

NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank  7,94G   120K  7,94G         -     0%     0%  1.00x  ONLINE  -

Sudo zfs listを使用した使用済みおよび使用可能なストレージ容量:

NAME   USED  AVAIL  REFER  MOUNTPOINT
tank  74,8K  5,84G  25,4K  /tank

これらのコマンドには両方とも、何をどのように印刷するかを制御するための多数のオプションがあります。それぞれzpoolzfsのマニュアルページを参照してください。

ファイルを/ tankに保存して、一般的にZFSで手を汚すことができるようになりました。プールをエクスポートするには(シャットダウンする前に推奨)、Sudo zpool export tank(またはSudo zpool export -aで現在インポートされているすべてのプールをエクスポートします)。プールを再度インポートするには、Sudo zpool import -d /.zfs -a(または-aをプールの名前tankに置き換えます)。 ZFSは通常、そのディレクトリでデバイスを検索しないため、-d /.zfsが必要になる場合があります。必要に応じて、これらのコマンドをシステムの起動/シャットダウンスクリプトに追加できます。

楽しんで!

3
a CVn