今回はDragonFlay BSD 5.0のルートパーティションをHAMMER2ファイルシステムに指定した場合の活用方法を紹介します。
HAMMER2ファイルシステムの使い方
DragonFly BSD 5.0をHAMMER2ファイルシステム指定でインストールすると、次のような感じでルートパーティションがHAMMER2ファイルシステムの状態でシステムが起動してきます。
この領域はhammer2(8)コマンドで制御できます。ZFSにおけるzfs(8)コマンドやzpool(8)コマンドに相当するコマンドです。hammer2(8)コマンドはサブコマンドを指定して操作するタイプのコマンドで、次のようなサブコマンドが用意されています。
表 hammer2(8)ユーティリティの主なサブコマンド
hammer2サブコマンド | 操作内容 |
connect ターゲット | クラスタリンクへ追加 |
chaindump パス | インメモリチェーントポをダンプ |
destroy パス | ディレクトリエントリの削除(inodeがおかしい場合などのみで使用) |
disconnect ターゲット | クラスタリンクの削除 |
hash ファイル名 | ディレクトリハッシュの出力 |
info [デバイスファイルパス] | H2パーティション情報の表示 |
mountadd [デバイスファイルパス] | H2パーティションのすべての@LOCALをマウント |
status [パス] | アクティブクラスタステータスを表示 |
pfs-list [パス] | PFS一覧表示 |
pfs-clid ラベル | 指定したPFSに対するクラスタIDを表示 |
pfs-fsid ラベル | 指定したPFSに対するプライベートIDを表示 |
pfs-create ラベル | PFSの作成 |
pfs-delete ラベル | PFSの削除 |
snapshot パス [ラベル] | PFSまたはディレクトリのスナップショットを作成 |
service | サービスデーモンを起動 |
stat [パス] | inodeクォータ情報および設定情報を表示 |
leaf | pfs leafデーモンを起動 |
shell [ホスト] | デバッグシェルへ接続 |
debugspan ターゲット | ターゲットへ接続しCONN/SPANを実行 |
rsainit | rsaフィールドを初期化 |
show デバイスファイルパス | Raw hammer2メディアダンプ |
freemap デバイスファイルパス | Raw hammer2メディアダンプ |
setcomp 圧縮アルゴリズム[:レベル] パス | 圧縮アルゴリズムおよび圧縮レベルを指定(none、autozero、lz4、zlib) |
setchech チェックアルゴリズム パス | チェックアルゴリズムを指定(none、crc32、xxhash64、sha192) |
clrcheck パス | チェックコードオーバーライドをクリア |
setcrc32 パス | チェックアルゴリズムをcrc32へ変更 |
setxxhash64 パス | チェックアルゴリズムをxxhash64へ変更 |
setsha192 パス | チェックアルゴリズムをsha192へ変更 |
bulkfree パス | バルクフリーパスを実行 |
たとえばpfs-listサブコマンドを使えば次のようにpfsが表示されます。
infoサブコマンドを使うと次のようにデバイスファイルパスを指定しての出力が可能です。
snapshotサブコマンドは次のようにスナップショットを作成するコマンドです。
作成したスナップショットはpfs-listで確認できます。
snapshotサブコマンドはラベル名を指定して作成することも可能で、作成した名前でpfs-listに表示されます。
スナップショットはマウントすることでアクセスが可能です。マウントにはmount_hammer2(8)コマンドを使います。次のように2つのスナップショットで違うファイルが存在していることを確認できます。
新しいディスクをHAMMER2の対象とするには、newfs_hammer2(8)でフォーマットしてmount_hammer2(8)でマウントします。次のような感じです。
クラスタの利用はまだできないとされていたので使えるのはこのあたりということになります。ZFSの場合はzpool(8)でストレージデバイスやストレージソースをストレージプールに追加していき、そこからzfs(8)でファイルシステムなどを作成します。これを比べてHAMMER2では従来のUNIX的アプローチでファイルシステムを作成し、それらをクラスタに追加することでスケールさせるといった仕組みを採用していることになります。
今のところHAMMER2ファイルシステムで実装されている機能はZFSで実装されている機能の一部といったところです。おいしいところだけピンポイントで実装し、シンプルな状態を保っているといった感じがします。従来のファイルシステムやツールと地続きになっている感じがあります。
FreeBSD勉強会
12月7日(木)19:00~ 第68回 BSDTW 2017から注目点紹介+α(ヴァル研 セミナールーム)
2017年11月11~12日に台湾の台北において開催された「BSDTW 2017」の発表内容を要点をしぼって紹介します。日本国外で開催される*BSDカンファレンスとしてはもっとも楽に参加できるカンファレンスでしょう。来年以降の開催時期はまだ決まっていませんが、飯もうまいし参加するにはいいカンファレンスです。どのような発表が行われたのかぜひ聞いていってください。
本勉強会への参加者には抽選か勝ち抜きかでデーモンTシャツなどのグッズをお渡しします :)
参加登録はこちらから。
FreeBSD勉強会 発表者募集
FreeBSD勉強会では発表者を募集しています。FreeBSDに関して発表を行いたい場合、@daichigotoまでメッセージをお願いします。30分~1時間ほどの発表資料を作成していただき発表をお願いできればと思います。