GNU/Linux >> Linux の 問題 >  >> Linux

zpool コマンドの例を使用して Linux で ZFS ファイルシステムをセットアップする方法

ZFS は、ボリューム マネージャーとファイルシステムをいくつかの高度な機能と組み合わせています。

これは、ZFS に関する一連の記事の第 1 部です。

この記事では、ZFS の概要を紹介し、Linux に ZFS をインストールする方法、ZFS プールを作成する方法、およびいくつかの ZFS zpool コマンドについて説明します。

1. ZFS の概要

以下は、ZFS ファイルシステムの機能の一部です:

  • データ破損に対する保護
  • 大容量ストレージのサポート
  • 効率的なデータ圧縮
  • ファイルシステムのスナップショットを取る
  • コピー オン ライト クローン
  • RAID Z のサポート
  • 整合性チェック
  • ネイティブ NFSV4 ACL の自動修復とサポート

これは、もともと Sun Microsystems が Solaris プラットフォーム用に開発したものです。 2010 年、Oracle は Sun のマイクロシステムを買収し、ZFS ファイルシステムに多くの改良を加えました。

ZFS は、より安定しているため、Linux で最近人気が高まっています。

ZFS on Linux ポートは、ローレンス リバモア国立研究所 (LLNL) によって作成されています。

Linux 上の ZFS は、ダウンロード、コンパイル、およびインストールできるカーネル モジュールです。カーネルにパッチを当てたり、再コンパイルしたりする必要はありません。

ここから、それぞれの OS ディストリビューションのソース パッケージをダウンロードできます。

2. Linux に ZFS をインストール

この記事では、ZFS を CentOS サーバーにインストールします。ただし、以下で説明する zfs コマンドは、インストール部分を除いて、Linux ディストリビューションのほぼすべてのディストリビューションで同じです。

次の yum コマンドを実行して、Redhat / CentOS に ZFS をインストールします。

# yum localinstall --nogpgcheck https://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el6.noarch.rpm

# yum install kernel-devel zfs

すべての依存関係が満たされていることを確認してください。インストールが通常失敗する依存関係の 1 つは、GCC コンパイラをインストールするための要件です。この場合、ZFS をインストールする前に GCC コンパイラをインストールしてください。

以下に示すように、ZFS モジュールが lsmod コマンドを使用してロードされていることを確認してください:

# lsmod | grep zfs
zfs                  1188621  0
zcommon                45591  1 zfs
znvpair                81046  2 zfs,zcommon
zavl                    6900  1 zfs
zunicode              323051  1 zfs
spl                   264548  5 zfs,zcommon,znvpair,zavl,zunicode

関連するメモとして、Linux ローダブル カーネル モジュールの作成方法の基本についてお読みになることをお勧めします。

ZFS 機能をテストするために、このサーバー (/dev/sdb から /dev/sdf まで) にいくつかのディスクを追加しました。

# ls -l /dev/sd*
brw-rw----. 1 root disk 8,  0 Jul 15 15:52 /dev/sda
brw-rw----. 1 root disk 8,  1 Jul 15 15:52 /dev/sda1
brw-rw----. 1 root disk 8,  2 Jul 15 15:52 /dev/sda2
brw-rw----. 1 root disk 8,  3 Jul 15 15:52 /dev/sda3
brw-rw----. 1 root disk 8, 16 Jul 16 10:57 /dev/sdb
brw-rw----. 1 root disk 8, 32 Jul 16 10:57 /dev/sdc
brw-rw----. 1 root disk 8, 48 Jul 16 10:58 /dev/sdd
brw-rw----. 1 root disk 8, 64 Jul 16 11:27 /dev/sde
brw-rw----. 1 root disk 8, 80 Jul 16 11:27 /dev/sdf

3. zpool を作成する

ZFS でストレージプールを構成するために使用される Zpool コマンド。ストレージ プールは、zfs データセットの物理ストレージとデータ レプリケーションを提供するデバイスのコレクションです。

以下は zpool を作成します。

# zpool create -f mypool raidz sdb sdc sdd sde sdf

上記の例では:

  • create は、新しいプールを作成することを表します。
  • -f オプションは、これらが新しいディスクであるため、ディスク パーティション ラベルを無視することです
  • レイドはレイドレベルです。 RAIDZ は、パリティの分散を改善し、「RAID-5」書き込みホール (停電後のデータとパリティの不一致) を排除する RAID-5 のバリエーションに他なりません。
  • raidz グループは、シングル、ダブル、またはトライブ パリティを持つことができます。つまり、データを失うことなく、それぞれ 1 つ、2 つ、または 3 つの障害に耐えることができます。データとパリティは、raidz グループ内のすべてのディスクにわたってストライピングされます。

次に、作成した zpool のステータスを確認します。

# zpool status
  pool: mypool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mypool      ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0

errors: No known data errors

プールが作成されたら、df –h を実行すると、新しく作成されたプールがマウントポイントに自動的にマウントされます。

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vglocal-rootlv   14G  2.4G   11G  18% /
tmpfs                       939M     0  939M   0% /dev/shm
/dev/sda1                   504M   46M  433M  10% /boot
mypool                      3.9G     0  3.9G   0% /mypool

4.ミラーリングされたプールを作成

ミラー化されたプールを作成するには、次のオプションを指定して zpool create コマンドを使用します。

特定のミラー グループ内のいずれかのディスクに障害が発生した場合でも、他のディスクにデータが保持されます。故障したディスクが交換されるとすぐに、内容が新しく交換されたディスクにミラーリングされます (再同期とも呼ばれます)。

# zpool create -f mypool mirror sdb sdc mirror sdd sde

次に、作成したばかりのミラーリングされた zpool のステータスを確認します。

# zpool status -v
  pool: mypool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mypool      ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0

errors: No known data errors

5. Zpool のインポートとエクスポート

システム間で zfs プールを移行する必要がある場合があります。

ZFS は、あるシステムからプールをエクスポートし、別のシステムにインポートすることでこれを可能にします。

プールをエクスポートするには、次の例に示すように、zpool export コマンドを使用し、zpool import コマンドを使用してプールをインポートします。

# zpool export mypool

# zpool import mypool

6. ZFS プールの I/O 統計を表示

zpool I/O 統計を表示するには、以下に示すように zpool iostat コマンドを使用します。

# zpool iostat -v mypool
               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
mypool       147K  4.95G      0      0     33    252
  mirror      54K  3.97G      0      0     10     84
    sdb         -      -      0      0    536    612
    sdc         -      -      0      0    282    612
  mirror      93K  1008M      0      0     23    168
    sdd         -      -      0      0    288    696
    sde         -      -      0      0    294    696
----------  -----  -----  -----  -----  -----  -----

7. ZFS プールを削除する

プールを破棄するには、以下に示すように zpool destroy コマンドを使用します:

# zpool destroy mypool

8. ZFS プール内の破損したディスクを交換

障害または破損後にディスクを交換するには、次のコマンドを使用します:

# zpool replace mypool sde sdf

9.新しいディスクで ZFS プールを拡張

新しいディスクを追加して zpool を拡張するには、次のように zpool コマンドを使用します:

# zpool add -f mypool sde

10.スペア ディスクを ZFS プールに追加する

以下のコマンドを使用して、zfs プールにスペア デバイスを追加することにより、zfs プールにスペア ディスクを追加することもできます。

故障したディスクは自動的にスペア デバイスに置き換えられ、管理者は後で故障したディスクを交換できます。

複数の ZFS プール間でスペア デバイスを共有することもできることに注意してください。

# zpool add -f mypool spare sde

この記事の次の部分では、ZFS プールを使用して ZFS ファイルシステムを作成し、ZFS ファイルシステムをマウントし、コマンドラインから操作する方法について説明します。


Linux
  1. 実用的な例でLinuxHexdumpコマンドを使用する方法

  2. LinuxDDコマンド-すべてのオプションを使用した15の例

  3. LinuxでのJQコマンドと例

  1. LinuxでのSCPコマンド:使用方法と例

  2. 例を使用してLinuxでRmmodコマンドを使用する方法

  3. Linux でファイル圧縮を使用して ZFS ファイルシステムを作成する方法

  1. 例を含むwcLinuxコマンド

  2. 例を使用してLinuxでIPコマンドを使用する方法

  3. Linux Catコマンドの使用方法(例付き)