zfs sharesmb があるが、色々と問題が出たため、sambaを使用している。
そこで、ふと思ったのだが、zfs snapshot をsamba経由でみてはどのようになるか、と気になったため試してみました。
まず、ファイルサーバとして、OpenSolarisを使用しているので、D: を丸々smb越しで利用しています。
ネットワーク越しに接続されていることが確認出来たでしょうか。
確認出来たところで、d:\.zfs\ を見てみましょう。
これは、zfs auto-snapshot を使用しているのですが、次のようになっています。
$ ls -al
total 183
dr-xr-xr-x 63 root root 63 May 2 15:41 .
dr-xr-xr-x 3 root root 3 May 2 15:41 ..
drwxrwx---+ 6 tomo ntsrv02 6 Jun 14 01:21 lastday
d---------+ 6 tomo ntsrv02 6 May 21 00:19 zfs-auto-snap:daily-2009-05-26-00:00
--- 略
ディレクトリに`:' が入るため、正しく表示できないようです。
尚、lastday は正しく表示されていますね。
これは、Windowsでは、`:' の文字列が使用出来ないために、このようになるんだと思います。
というわけで、zfs-auto-snapshot を使用した、過去へのファイルのアクセスは現実的に難しい物だと思います。
運用方針として、IPv4は、NameBaseのVirtualHost、IPv6はIPBaseのVirtualHostで運用していた。
その為、コンテンツは同じだが、サーバ的には、2つのVirtualHostとなり、運用が面倒なところがあった。
コンテンツが同じなので、共通の設定をおこなうと、2つのvhostに設定しないといけない。
そこで、Include等を使い対応することも可能だが、若干複雑になってしまう。
そこで、コンテンツは同じなので、一つのvhostで対応出来ないか、考えてみた。
結論は、SetEnvIf Remote_Addr で設定を分ければよいのだが、ここでは、CIDRは使用出来ない。
正規表現は使用可能なので、次のように設定した。
SetEnvIf Remote_Addr "^[0-9a-fA-F{1,4}:]+$" v6-access
SetEnvIf Remote_Addr "^\d+\.\d+\.\d+\.\d+$" v4-access
CustomLog /..../log/access-v4.log combined env=v4-access
CustomLog /..../log/access-v6.log combined env=v6-access
まあ、次のようにするのもありだけど、今回は分けました。
CustomLog /..../log/access-v4.log combined env=!v6-access
or
CustomLog /..../log/access-v6.log combined env=!v4-access
やり方はお任せで。
IPv6正規表現については、射影アドレスの場合考慮する必要がありますが、今回は必要がないため、このようになりました。
もっと、いい、コレだ!というのがありましたら、コメントにて。