リモートファイルシステムを使ってRAID1を構成できるChiron FSLinux Hacks(1/2 ページ)

2台以上のHDDで組むRAID1だが、必ずしも物理的に同じ場所になくともよい。Chiron FSを使えば、ネットワーク上の2台のマシンが持つディスクで1つのRAID1を構成できる。この素晴らしいソフトウェアを紹介しよう。

» 2009年01月29日 08時00分 公開
[Ben Martin,SourceForge.JP Magazine]
SourceForge.JP Magazine

 LinuxカーネルはRAID1の実行をソフトウェアでサポートしている。RAID1では、1つのファイルシステムを2台以上のディスク装置で保持するため、障害が発生しても最後のディスクが生き残っていればすべてのデータを復旧できる。素晴らしい仕組みだが、メモリや電源ユニットなど、ほかのハードウェアコンポーネントが故障した場合にはやはり貴重なデータが失われる可能性がある。だがChiron FSを使えば、ネットワーク上の2台のマシンが持つディスクで1つのRAID1を構成でき、一方のマシンがダウンしてもファイルシステムにアクセスし続けることができる。

 RAID1構成が維持された状態で一方のマシンに障害が発生した場合でも、ネットワーク接続が無事であれば、障害で破損したファイルがChiron FSによって他方のマシンに複製(レプリケーション)されるおそれがある。だが、2台のローコストPCとネットワーク接続だけでファイルシステムを冗長化できることを考えれば、この程度のリスクは受け入れざるを得ないだろう。ただし、ほかのソリューションと組み合わせて、データのセキュリティ性と可用性を高めることは可能だ。

 Chiron FSを使うに当たっての主な要件は、RAID1を構成する場所がLinuxカーネルによってファイルシステムとしてマウントできることだ。例えば、ローカルにマウントされたext3ファイルシステムと、NFSまたはsshfs経由でバックアップ用マシンからマウントされたXFSファイルシステムがあれば、Chiron FSを使って双方のファイルシステムで同じ内容を保持できる。

 Chiron FSは、openSUSE 10.3の1-Clickインストールに対応しているが、FedoraやUbuntuのリポジトリには収録されていない。だがChiron FSのダウンロードページに行けば、Ubuntu HardyおよびGutsy用とFedora 8用の各種パッケージが手に入る。ここではChiron FSのバージョン1.0.0のソースを64ビット版Fedora 8マシンでビルドした。インストールには、標準的な「./configure; make; sudo make install」の手順を用いる。

 以下に、Chiron FSの設定方法と簡単な使い方を示す。まず、冗長化するファイルシステム用のディレクトリを作成する。この例では「local-disk- filesystem」と同じディスク上に「my-other-server-filesystem」を作成しているが、このディレクトリはNFSマウントされたファイルシステム上でも簡単に作成できる。Chiron FSに「--fsname」引数は必要ないが、できればファイルシステムに分かりやすい名前をつけておくに越したことはない。続いて、Chiron FSによる「~/my-chiron」ディレクトリにファイルを作成し、そのレプリカである「/tmp/chiron-testing/my- other-server-filesystem」にも同じファイルができていることを確認している。


$ mkdir /tmp/chiron-testing
$ cd /tmp/chiron-testing
$ mkdir local-disk-filesystem
$ mkdir my-other-server-filesystem
$ mkdir ~/my-chiron
$ chironfs --fsname chiron-testing /tmp/chiron-testing/local-disk-filesystem=/tmp/chiron-testing/my-other-server-filesystem ~/my-chiron
$ df ~/my-chiron
Filesystem           1K-blocks      Used Available Use% Mounted on
chiron-testing        15997880  10769840   4402288  71% /home/ben/my-chiron
$ date > ~/my-chiron/test1
$ cat ~/my-chiron/test1
Thu May 29 15:17:30 EST 2008
$ cat /tmp/chiron-testing/my-other-server-filesystem/test1
Thu May 29 15:17:30 EST 2008
...
$ fusermount -u ~/my-chiron

 Chiron FSを使う際は、レプリカのファイルシステム(前記の例では「/tmp/chiron-testing」内の2つのディレクトリ)を隠ぺいして直接アクセスできないようにしておくとよい。そうすれば、間違ってそれらにアクセスして、結果としてデータのレプリケーションをし損なわずに済む。

 Chiron FSはログを記録する機能を備えているほか、低速なファイルシステムもサポートしている。ロギングによって、レプリカファイルシステムの問題にいち早く気づき、最後に残ったレプリカが正しく動作せずにデータがすべての失われるという事態になる前に対策を打つことができる。またChiron FSは、読み取り要求を受け取ると、ラウンドロビンアルゴリズムを使ってレプリカの1つからデータを取得するが、特定のレプリカがほかよりもアクセスに時間が掛かる場合にはその旨をChiron FSに伝えることができる。すると、Chiron FSはそのレプリカについてはデータの読み取りアクセスを避け、ファイルシステムのすべての更新内容のレプリケーションだけを行う。このオプションが役立つのは、Chiron FSをオフサイトバックアップに使う場合である。速度とコストの面で不利なサイト外のレプリカからのデータの読み取りを避けながら、ファイルシステムの変更部分をサイト外にレプリケーションできるからだ。

 また「/etc/fstab」を使ってChiron FSをマウントするような設定も行える。以下に示す設定では、「/data」というファイルシステムを作成し、そのデータをローカルの「/noaccess/local-mirror」ファイルシステムと、NFS接続されたマシンp1上の「/p1export」ファイルシステムの双方にレプリケーションする。このfstabファイルの記述で「/p1export」の前にあるコロン(:)は、そのファイルシステムがアクセス速度の低いレプリカファイルシステムであることを示している。そのため、Chiron FSはこのNFSファイルシステムからは読み取りを行わない。また、Chiron FSはFUSEベースのファイルシステムなので、最初にChiron FSをマウントしたユーザー以外のユーザーからのアクセスを許可するには、「allow_other」オプションを指定する必要がある。


# cat /etc/fstab
...
p1:/p1export                                /p1export   nfs defaults 0 0
chironfs#:/p1export=/noaccess/local-mirror  /data       fuse allow_other,log=/var/log/chironfs.log 0 0
...
# mount /data
...

あなたが知らないLinux環境のだいご味をそっと教える「Linux Hacks」も合わせてどうぞ。


       1|2 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ