CC Network Filesystem( ccgfs )を利用すると、プッシュモデルでもプルモデルでも、ネットワークを越えてファイルシステムをマウントすることができる。ほとんどのネットワークファイルシステムはプルモデルを採用しているが、この場合クライアントがネットワーク共有をマウントし、接続を開始するのもクライアントだ。これに対して、プッシュモデルのネットワーク共有では接続はサーバーが開始する。このため、ネットワーク非武装地帯(DMZ)にあるマシンからファイアウォールを越えてファイルサーバーにアクセスしたいときに都合がよい。
DMZにあるクライアントがDMZの外にあるserverX上のネットワーク共有にアクセスする場合、NFSではDMZからserverXへの接続を許容しなければならないが、プッシュモデルでは接続はserverXからDMZのクライアントに対して開始されるのでそうした問題は発生しないからだ。
Fedora、openSUSE、Ubuntuのリポジトリーにccgfsのパッケージはない。そこで、64ビットFedora 9マシン上でccgfsバージョン0.7.4をソースからビルドした。ccgfsには必要なソフトウェアがいくつかあるが、その中でインストールされていないのはlibHXだけだろう。パッケージはUbuntu Hardy、openSUSE 11、Fedora 9の各リポジトリーにある。最新版ccgfsのビルドにはバージョン1.25以降のlibHXが必要だ。インストールされているlibHXが旧版だった場合は、通常の「./configure; make; sudo make install」でソースからビルドすること。なお、ccgfsをビルドするときは、PKG_CONFIG_PATHの設定を忘れないように。後で示すように、/usr/localのディレクトリーを設定する。
ccgfsはFUSEファイルシステムのため、ビルドの前にFUSE開発パッケージをインストールしておく必要がある。パッケージは、Fedora 9とopenSUSE 11の場合はfuse-devel、Ubuntu Hardyの場合はlibfuse-dev。ほかに、libattr、libxml2、libsslも必要だが、これらはすでにインストールされているだろう。
ccgfsをビルドしインストールするコマンドは下のとおり。ここで、sysconfdir(デフォルトは/usr/local/etc)に/etcを指定しているのは、ccgfsにはinit.dスクリプトが含まれており、その構成ファイルをsysconfdirで探すからだ。同様に、configureの実行では、localstatedirオプションでグローバルな/varディレクトリーを指定する。
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ $ tar xjvf /FromWeb/ccgfs-0.74.tar.bz2 $ cd ./ccgfs-* $ ./configure --sysconfdir=/etc --localstatedir=/var $ make $ sudo make install
