先週述べたように、Ubuntu 19.10 が正式に到着し、それに伴い本当に多くの興味深い機能がもたらされています。 これらの新しいオプションの大部分はデスクトップ ユーザーを対象としていますが、デスクトップとサーバーの両方のユーザーに恩恵をもたらす、特にエキサイティングな機能が 1 つあります。
Sun Microsystems 社が Solaris Unix ディストロ用に最初に開発した ZFS は、128 ビット ファイル システムと論理ボリューム マネージャーの組み合わせで、以下の機能を提供します:
- 拡張可能です。
- スナップショットとロールバックを含む。
- コピー オン ライト クローンをサポートする。
- 継続的な整合性チェックと自動修復。 なぜでしょうか。 スナップショットとロールバック機能だけでも、参加する価値はあります (ちなみに、これは無料です)。 この機能により、管理者はシステムを稼働状態(または誤って削除したデータを含む状態)にロールバックすることができます。 これは非常に大きなことです。
もちろん、スナップショットやロールバックは新しいものではありません。 実際、多くのプラットフォームは何年も前からこのツールを搭載しています。 ですから、Ubuntu はこれに関して少し遅れているのかもしれません。 しかし、Ubuntu を使用している人にとって、これは「遅かれ早かれ」のケースです。
しかし、Ubuntu 上で ZFS はどのように動作するのでしょうか。 と聞いてくれてうれしいです。
A Caveat
これを読み込む前に、Ubuntu 19.10 の ZFS サポートは実験的であることを知っておいてください。 信じられないほど安定していることがわかりましたが、実稼働環境での使用については、(「実験的」であるというリストがなくなるまで)よく考えたほうがよいでしょう。 これは、サーバー版でファイルシステムのサポートを追加できないということではありませんが、それほど単純なことではありません。 このため、デスクトップ版の Ubuntu 19.10 でデモを行います。
Installation
最初のステップは、Ubuntu 19.10 のインストール時に、ZFS を有効にすることです。 インストール中、Installation typeの段階で新しいオプションが見つかります(図1)。
Figure 1: Installing during ZFS optionを選択する。
インストール完了後、再起動しログイン。
サーバー版Ubuntu 19.10を使っている場合、Ubuntu 19.10のサーバーは、ZFSを有効にします。10 を使用している場合は、常にコマンドで ZFS サポートをインストールすることができます。
1sudo apt-get install zfsutils-linuxもちろんこのルートを取る場合、いくつかの追加ステップ(データセットを作成するなど)が必要になります。 デスクトップ インストールでは、ディレクトリ階層全体が ZFS データセットで構成されているため、やるべきことははるかに少なくなります。 ZFS を使用しない Ubuntu インストールでは、通常、/home/jack または /usr/local/ のようなディレクトリ パスを使用して作業することになります。 ZFSを使用するシステムではそうではありません。 その代わり、データセットで作業します。 データセットとは、ストレージプール (ZFS の最も基本的な構成要素) を共有するファイルシステムの一種です。
データセットを見つけるには、次のコマンドを実行します。
1zfs listご覧のように (Figure 2), 全てのディレクトリは bpool (boot) または rpool (root) プールで発見されたものであるとわかります。
Figure 2: Our dataset listing.
User’s home directory で作業してみましょう。 この場合、データセットrpool/USERDATA/jack_bwcn4u.
スナップショットの作成
最初に行うことは、/home/jackディレクトリの新しいスナップショットの作成です(これは、rpool/USERDATA/jack_bwcn4uデータセットであると覚えておいてください。).しかし、/home/jackディレクトリを作成することはできません。 例えば、今日の日付のタグが付いたスナップショットを作成したいとします。 このためのコマンドは次のようになります。
1sudo zfs snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19of you could include the date command like like this.このコマンドは今日の日付のコマンドです。
1sudo zfs rollback rpool/USERDATA/jack_bwcn4u@`date +%F`スナップショットが取得できたか確認するには、このコマンドを発行してください。
1zfs list -t snapshot現在のすべてのスナップショットの一覧を見ることができます (Figure 3)。
Figure 3: 新しいスナップショットが作成されました。
Roll Back a Snapshot
たとえば、何らかの理由で、ホーム ディレクトリから誤ってディレクトリが削除されたとしましょう。 あなたはどうしますか? 幸い、あなたはスナップショットを取っており、そのスナップショットをロールバックして、削除されたディレクトリが戻るようにすることができます。
まず、コマンドで ~/Documents ディレクトリを削除してみましょう。
1rm -rf /home/jack/Documentslsコマンドを出してみると、ドキュメントディレクトリは消えています(図 4)。
Our Documents directory has been deleted.
ここで、金曜日のスナップショットをロールバックして、そのディレクトリを回復します。 これを行うには、コマンドを発行します。
1sudo zfs rollback rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19コマンドが完了したら、コマンドは、次のように実行されます。 再度lsを発行し、Documentsが戻ってきたことを確認する(図5)。
Figure 5: Documents is back.
Destroying Snapshots
多くのスナップショットを作成した、または特定のスナップショットに破損したデータまたは欠損があるとします。 そのスナップショットを削除したいと思うかもしれません。 例えば、rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19 スナップショットを削除したいとします。 それを行うには、コマンドは次のようになります。
1sudo zfs destroy rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19一度破壊したスナップショットは復元することができません。 そのため、このコマンドは注意して使用してください。 もし、特に重要なスナップショットを破壊されたくない場合は、そのスナップショットをホールドすることができます。 rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19のスナップショットをホールドするには、次のコマンドを実行します。
1sudo zfs hold keep rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19ここでスナップショットを破棄しようとすると、次のようなコマンドになります。 というエラーが表示されます(図6)。
Figure 6: このスナップショットを破棄できません。
保持したスナップショットを破棄するには、次のように-dオプションを追加する必要があります。
1<i>sudo zfs destroy – -d オプションを追加してください。d rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19</i>以上です。 保持されていたスナップショットが消えました。
以上、Ubuntu 19.10で新たに追加されたZFS機能によるスナップショットの作成と破棄の基本を説明しました。 テスト環境で試してみて、その効果を確認してみてください。 今のところ、スナップショットをロールバックしようとすると、マシンを再起動しないとロールバックコマンドが正常に実行されないという問題が1つだけ発見されました。 この問題を除けば、ZFS と Ubuntu 19.10.
で順風満帆です。