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

DebianJessie8.1を使用してLinuxにZFSをインストールして設定する方法

このページについて

  1. 前提条件:
  • ステップ1-リポジトリを更新してDebianLinuxシステムを更新する
  • ステップ2-zfsonlinuxをインストールします
  • ステップ3-プールを作成して構成する
  • ステップ5-ZFSファイルシステムを作成して構成する
  • 結論
  • ZFSは、ファイルシステムと論理ボリュームマネージャーを組み合わせたものです。 ZFSの機能には、データ破損に対する保護、大容量のストレージのサポート、効率的なデータ圧縮、ファイルシステムとボリューム管理の概念の統合、スナップショットとコピーオンライトクローン、継続的な整合性チェックと自動修復、RAID-Zとネイティブが含まれます。 NFSv4ACL。

    ZFSは元々、Common Development and Distribution License(CDDL)の下でライセンスされたオープンソースソフトウェアとして実装されていました。

    ZFSファイルシステムについて話すとき、次の重要な概念を強調することができます。

    • データの整合性。
    • zfsとzpoolの2つのコマンドのみを使用した単純なストレージ管理。
    • ファイルシステムがオンラインのときにすべてを実行できます。

    利用可能なすべての機能の完全な概要と説明については、この詳細なウィキペディアの記事を参照してください。

    このチュートリアルでは、Debian 8.1(Jessie)へのZFSファイルシステムのインストールを段階的に説明します。 RAID0(ストライプ)、RAID1(ミラー)、およびRAID-Z(パリティ付きRAID)を使用してプールを作成および構成する方法と、ZFSを使用してファイルシステムを構成する方法を説明します。

    ウェブサイトwww.zfsonlinux.orgの情報に基づくと、ZFSはAMD64およびIntel 64ビットアーキテクチャ(amd64)でのみサポートされています。セットアップを始めましょう。

    前提条件:

    • 64ビットカーネルを搭載したDebian8。
    • root権限。

    ステップ1-リポジトリを更新してDebianLinuxシステムを更新する

    zfsonlinuxリポジトリをシステムに追加するには、以下に示すようにzfsonlinuxパッケージをダウンロードしてインストールします。これにより、ファイル/etc/apt/sources.list.d/zfsonlinux.listと/etc/apt/trusted.gpg.d/zfsonlinux.gpgがコンピューターに追加されます。その後、apt-getコマンドを使用して、他のDebianパッケージと同じようにzfsをインストールできます。 zfsonlinuxリポジトリを使用するもう1つの利点は、「apt-get update&&apt-getupgrade」を実行することで自動的に更新を取得できることです。

    SSHアクセスでDebianサーバーにログインし、rootユーザーになってから、次のコマンドを実行します。

    #uname -a 
    Linux debian-zfs 3.16.0-4-amd64#1 SMP Debian 3.16.7-ckt11-1(2015-05-24)x86_64 GNU / Linux
    #wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
    #dpkg -i zfsonlinux_6_all.deb
    #apt-get update

    ステップ2-zfsonlinuxをインストールします

    Zfsonlinuxには、aptによって自動的にインストールされる多くのソフトウェア依存関係があります。このプロセスにはしばらく時間がかかります。インストールが完了したら、サーバーを再起動します。

    #apt-get install lsb-release 
    #apt-get install debian-zfs
    #shutdown -r now

    ステップ3-プールを作成して構成する

    サーバーを再起動したら、zfsonlinuxがインストールされ、正常に実行されていることを確認します。

    #dpkg -l | Debianのためのgrep ZFS 
    IIのdebian-ZFS 7〜ジェシー・AMD64ネイティブZFSファイルシステムのメタパッケージ。Linuxの
    II ZFS-DKMS用
    II libzfs2 0.6.5.2-2 AMD64ネイティブZFSファイルシステムライブラリ0.6.5.2 -2のLinux
    II zfsonlinux 6のためのすべてのネイティブZFSファイルシステムのカーネルモジュール全てarchive.zfsonlinux.org信託パッケージII zfsutils />
    管理します

    上記の結果は、Linux上のzfsがすでにインストールされていることを示しているため、最初のプールの作成を続行できます。

    このサーバーに、それぞれ2GBのサイズのディスクを5つ追加しました。次のコマンドで使用可能なディスクを確認できます:

    #ls / dev / sd * 
    / dev / sda / dev / sda1 / dev / sda2 / dev / sda5 / dev / sdb / dev / sdc / dev / sdd / dev / sde / dev / sdf / dev / sdg

    オペレーティングシステムDebianLinuxJessie8.1に/dev/ sdg、/ dev / sdaが使用されるまで、/ dev/sdaがあることがわかります。 ZFSファイルシステムには/dev/sdgまで/dev/sdbを使用します。

    これで、プールの作成を開始できます。最初のプールでは、raid0(ストライプ)の作成方法を説明します。

    #zpoolリスト
    利用可能なプールはありません
    #zpool create -f pool0 / dev / sdb 
    #zpool list
    NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
    pool0 1.98G 64K 1.98G 0%-0 xオンライン-

    コマンド「zpoollist」は、1つのraid0 zfsプールが正常に作成され、プールの名前がpool0で、サイズが2GBであることを示しています。

    次に、他のディスクを使用してraid1(ミラー)を作成します。

    #zpool create -f pool1 mirror / dev / sdc / dev / sdd 
    #zpool list
    NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
    pool0 1.98G 64K 1.98G 0%0%1.00xオンライン-
    pool1 1.98G 64K 1.98G-0%0%1.00xオンライン-

    現在、RAID0用のpool0とRAID1用のpool1の2つのプールがあることがわかります。

    プールのステータスを確認するには、次のコマンドを使用できます。

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

    STATE READ WRITE CKSUM
    pool0 ONLINE 0 0 0
    sdb ONLINE 0 0 0

    エラー:ON

    エラー:既知のデータエラーはありません


    スキャン:リクエストなし
    config:

    STATE READ WRITE CKSUM
    pool1 ONLINE 0 ON 0 /> 0
    0 0 0
    sddオンライン000

    エラー:既知のデータエラーはありません

    「zpoolstatus」コマンドでプールの状態を確認できます。 pool0とpool1の違いがわかります。pool0にはディスクが1つだけあり、pool1には2つのディスクがあり、ディスクのステータスはミラー(mirror-0)です。

    次に、RAID-Zを使用してプールを作成します。RAID-ZはRAID-5のようなデータ/パリティ分散スキームですが、動的なストライプ幅を使用します。ブロックサイズに関係なく、すべてのブロックに独自のRAIDストライプがあります。その結果、すべてのRAID-Z書き込みがフルストライプ書き込みになります。

    RAID-Zには少なくとも3台のハードドライブが必要であり、RAID0とRAID1の間の妥協点のようなものです。RAID-Zプールの場合:プール内の1台のディスクが故障した場合は、そのディスクを交換するだけで、ZFSがデータを自動的に再構築します。他のディスクからのパリティ情報に基づきます。ストレージプール内のすべての情報を失うには、2つのディスクが停止する必要があります。ドライブのセットアップをさらに冗長にするために、RAID 6(ZFSの場合はRAID-Z2)を使用してダブルパリティを取得できます。

    最初に1つのパリティを持つRAID-Zプールを作成しましょう。

    #zpool create -f poolz1 raidz sde sdf sdg 
    #zpool list poolz1
    NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
    poolz1 5.94G 0%0 1.00xオンライン-
    #zpool status poolz1 
    pool:poolz1
    state:ONLINE
    scan:none requested
    config:

    STATE READ WRITE CKSUM
    poolz1 ONLINE 0 0 0
    raidz1-0 ONLINE 0 0 0
    SDE ONLINE 0 0 0
    SDF ONLINE 0 0 0
    SDG ONLINE 0 0 0

    エラー:既知のデータエラーはありません
    #df -h / poolz1 
    ファイルシステム使用済みアベイルズ使用率%マウント済み
    poolz1 3.9G 0 3.9G 0%/ poolz1

    ご覧のとおり、df -hは、6GBのプールが4GBに削減され、パリティ情報を保持するために2GBが使用されていることを示しています。 zpool statusコマンドを使用すると、プールが現在RAID-Zを使用していることがわかります。

    次に、RAID-Z2(RAID 6)を作成します。この目的のために、使用可能なディスクがなくなったため、既存のプールを削除する必要があります。プールの削除は非常に簡単です。そのためにzpooldestroyコマンドを使用できます。

    #zpool list 
    NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
    pool0 1.98G 64K 1.98G -プール-0%-98 G 1. 0%1.00x 0%0%1.00xオンライン-
    poolz1 5.94G 117K 5.94G-0%0%1.00xオンライン-
    #zpool destroy pool0 
    #zpool destroy pool1
    #zpool destroy poolz1
    #zpoollist
    利用可能なプールがありません

    これですべてのzpoolがなくなったので、RAID-Z2プールを作成できます。

    #zpool create poolz2 raidz2 sdb sdc sdd sde 
    #zpool list
    NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
    poolz2 7.94G 135K 7.94Gオンライン-
    #df -h / poolz2 
    ファイルシステム使用済みアベイルズ使用率%マウント済み
    poolz2 3.9G 0 3.9G 0%/ poolz2
    #zpool status poolz2 
    pool:poolz2
    state:ONLINE
    scan:none requested
    config:

    STATE READ WRITE CKSUM
    poolz2 ONLINE 0 0 0
    raidz2-0 ONLINE 0 0 0
    SDB ONLINE 0 0 0
    SDC ONLINE 0 0 0
    SDD ONLINE 0 0 0
    SDEオンライン000

    エラー:既知のデータエラーはありません

    ご覧のとおり、df -hは、パリティ情報を2回保持するために4GBが使用されているため、8GBプールが4GBに削減されたことを示しています。 「zpoolstatus」コマンドを使用すると、プールでRAID-Z2が使用されていることがわかります。

    ステップ4-ディスク障害をシミュレートする

    このステップでは、壊滅的なディスク障害をシミュレートします(つまり、zpool内のHDDの1つが機能を停止します)。

    poolz2にファイルを作成し、アクセスできることを確認します。

    #echo"テストのみ">/poolz2/test.txt 
    #cat/poolz2/test.txt
    テストのみ

    障害をシミュレートする前に:poolz2のステータスを確認し、ステータスがオンラインであり、すべてのディスクのステータスがオンラインであることを確認します。

    失敗は、ddコマンドを使用してランダムデータを / dev / sdbに書き込むことでシミュレートされます。 。

    #dd if =/ dev / urandom of =/ dev / sdb bs =1024 count =20480 
    #zpool scrub poolz2
    #zpool status
    pool:poolz2
    state :オンライン
    ステータス:1つ以上のデバイスで回復不能なエラーが発生しました。
    エラーを修正しようとしました。アプリケーションは影響を受けません。
    アクション:デバイスを交換する必要があるかどうかを判断し、エラーをクリアします
    「zpoolclear」を使用するか、デバイスを「zpoolreplace」に置き換えます。
    参照:http: //zfsonlinux.org/msg/ZFS-8000-9P
    スキャン:スクラブは0h0mで17Kを修復し、2015年12月8日火曜日22:37:49
    config:

    NAME STATEリードライトCKSUM
    poolz2 ONLINE 0 0 0
    raidz2-0 ONLINE 0 0 0
    SDB ONLINE 0 0 25
    SDC ONLINE 0 0 0
    SDD ONLINE 0 0 0
    sdeオンライン000

    エラー:既知のデータエラーはありません

    これで、1つ以上のディスクで回復不能なエラーが発生したことがわかります。そのため、ディスクを交換する必要があります。この場合、/ dev/sdbディスクを/dev/sdfに置き換えます。

    #zpool replace poolz2 sdb sdf 
    #zpool status
    pool:poolz2
    state:ONLINE
    scan:resilvered 49.5K in 0h0m with 0 errors on Tue Dec 8 22: 43:35 2015
    設定:

    NAME STATEリードライトCKSUM
    poolz2 ONLINE 0 0 0
    raidz2-0 ONLINE 0 0 0
    SDF ONLINE 0 0 0
    sdc 0 0
    sdd sdd ONLINE br 0 de 0 /> 0
    0

    / dev/sdbを/dev/ sdfに置き換えた後も、エラーはなくなり、以前に作成したテストファイルに引き続きアクセスできます。

    #cat/poolz2/test.txt
    テストのみ

    この手順までは、zpoolを作成して構成する方法を知っています。

    ステップ5-ZFSファイルシステムを作成および構成します

    次のステップでは、ZFSファイルシステムを作成および構成する方法を学習します。

    #zfs list 
    NAME USED AVAIL REFER MOUNTPOINT
    poolz2 105K 3.83G 26.1K / poolz2

    すでに1つのZFSファイルシステムがあります。これは、zpoolを作成するときに自動的に追加されます。次に、別のZFSファイルシステムを作成します。

    #zfs create poolz2 / tank 
    #zfs list
    NAME USED AVAIL REFER MOUNTPOINT
    poolz2 132K 3.83G 26.1K / poolz2
    poolz2 / tank 25.4K 3.83G 25.4K / poolz2 / tank
    #df -h | grep poolz2 
    poolz2 3.9G 128K 3.9G 1%/ poolz2
    poolz2 / tank 3.9G 128K 3.9G 1%/ poolz2 / tank

    とても簡単ですよね?タンクと呼ばれる新しいZFSファイルシステムを作成し、/ poolz2/tankとして自動的にマウントしました。

    ZFSファイルシステムのカスタムマウントポイントを作成するにはどうすればよいですか?以下のコマンドを使用してください:

    #zfs create poolz2 / data -o mountpoint =/ data 
    #df -h | grep poolz2
    poolz2 3.9G 0 3.9G 0%/ poolz2
    poolz2 / tank 3.9G 0 3.9G 0%/ poolz2 / tank
    poolz2 / data 3.9G 0%

    既存のマウントポイントを変更するにはどうすればよいですか?以下のコマンドでそれを行うことができます:

    #zfs set mountpoint =/ tank poolz2 / tank 
    #df -h | grep poolz2
    poolz2 3.9G 0 3.9G 0%/ poolz2
    poolz2 / data 3.9G 0 3.9G 0%/ data
    poolz2 / tank 3.9G / tan 0 3.9G pre>

    ファイルシステムをマウントおよびアンマウントするには、次のコマンドを使用します。

    #zfs unmount / data 
    #df -h | grep poolz2
    poolz2 3.9G 0 3.9G 0%/ poolz2
    poolz2 / tank 3.9G 0 3.9G 0%/ tank
    #zfsマウントpoolz2 / data 
    #df -h | grep poolz2
    poolz2 3.9G 0 3.9G 0%/ poolz2
    poolz2 / token 3.9G 0 3.9G 0%/ tank
    poolz2 / data

    zfsファイルシステムの削除は非常に簡単です。そのためにコマンドzfsdestroyを使用できます。

    #zfs destroy poolz2 / data 
    #zfs list
    NAME USED AVAIL REFER MOUNTPOINT
    poolz2 152K 3.83G 26.1K / poolz2
    poolz2 / tank 25.4K 3.83G 25.4K /タンク

    ファイルシステム/dataはなくなりました。

    結論

    ZFSファイルシステムは、Unixライクなオペレーティングシステムでのファイルシステムの管理方法を根本的に変える革新的な新しいファイルシステムです。 ZFSは、現在利用可能な他のファイルシステムにはない機能と利点を提供します。 ZFSは堅牢でスケーラブルであり、管理が簡単です。


    Debian
    1. Debian11にMariadb10をインストールして設定する方法

    2. Debian11にMongoDB5をインストールして設定する方法

    3. Debian11にRedis6をインストールして設定する方法

    1. Debian9にVNCをインストールして設定する方法

    2. Debian11にdockerをインストールして設定する方法

    3. Ubuntu、Debian、または Linux Mint に Node.js と npm をインストールして構成する方法

    1. Debian9にRedisをインストールして設定する方法

    2. Debian9にNagiosをインストールして設定する方法

    3. Debian9LinuxにZabbixをインストールして設定する方法