« | »

最近の OSC のセミナーで紹介していた Snapper で作成した Btrfs ファイルシステムのスナップショットを Samba で公開し、「以前のバージョン」のファイルにアクセスできるファイルサーバーが、CentOS でも 7.2 になって構築できるようになりました。

Snapper は openSUSE 傘下のプロジェクトで、設定しておいたルールに応じて、自動的にファイルシステムのスナップショットを撮ってくれます。Samba 4.2 以降で、Samba と Snapper が vfs_snapper で連携できるようになりました。細かい話は OSC 京都のスライドをチェックして下さい。

では早速インストールしてみましょう。ポイントは SELinux への対応です。(まさか、無効にしていないですよね?) ここは openSUSE ユーザ会の Blog ということで、細かい CentOS の解説は行わないことにします。

とりあえず、samba と snapper をインストールします:

共有するディレクトリ /srv/share を作成します。以前のバージョンに対応した共有ディレクトリは Btrfs の(サブ)ボリュームである必要がありま。アクセス権は実際に使用する環境に合わせて変更して下さい:

SELinux で Samba サーバーが /srv/share にアクセスできるようにします:

Samba サーバーの設定をします。今回は /etc/samba/smb.conf に次のような設定を追加します。
最後の vfs objects の設定がミソです:

Snapper の設定をします。スナップショットの残し方の設定は openSUSE と共通なので、スライドを参照して下さい:

ユーザアカウント geeko がスナップショットにアクセスできるようにします。設定ファイルの直接編集も可能です:

Samba サーバーを立ち上げましょう。まずはファイアウォールを開けて:

サービスの自動起動設定をし、smb サービスを開始します:

ユーザー geeko を Samba サーバーのユーザーに追加し、パスワードを設定してログインできるようにします。

あとは Windows からアクセスして、右クリックして、「以前のバージョン」タブを開くだけ…なのですが、なんと Samba サーバーが Snapper に接続する際に、SELinux が拒否してしまいます。次のようなログが /var/log/audit/audit.log にしっかり記録されています:

Samba から Snapper にアクセスを許可するポリシーを作成してみます。次のような samba-snapper.te を作成し

ルールをビルドします:

作成した samba-snapper.pp をシステムにインストールすると、以前のバージョンにアクセスできるようになります。

CentOS で以前のバージョンに対応したファイルサーバーを構築する方法を紹介しました。ぜひ、スライドで紹介している openSUSE で YaST を使った設定と比べてみて下さい。

コメント/トラックバック