スキップしてメイン コンテンツに移動

投稿

3月, 2011の投稿を表示しています

Native ZFS on Linux

先日、 ZFSonLinux にLinux用NativeなZFSがリリース(現時点ではRC2)されていると書きましたが、せっかくなのでOracle Linux 6 (Unbreakable Enterprise Kernel)でビルドしてみることにします。 本当は、ZFSのshareiscsiでZVolumeをiSCSIとしたかったのですが、shareiscsiは現時点では未実装でした。 上記のRC2のアーカイブを使ってもよいのですが、絶賛開発中のものであるのでgit リポジトリから最新ソースを持ってきてビルドしてみます。 ビルドの流れとしては 1. SPLのソースを持ってきてビルド 2. ZFSのソースを持ってきてビルド の2段階です。 1. SPLのソースをgitリポジトリから取得 # git clone https://github.com/behlendorf/spl.git Initialized empty Git repository in /root/work/spl/.git/ remote: Counting objects: 4372, done. remote: Compressing objects: 100% (1195/1195), done. remote: Total 4372 (delta 3264), reused 4206 (delta 3137) Receiving objects: 100% (4372/4372), 1.53 MiB | 637 KiB/s, done. Resolving deltas: 100% (3264/3264), done. 2. SPLのビルド # cd spl # ./configure # vi spl-modules.spec ここで、UEKカーネル用にちょっとspecファイルを修正しておきます。 spl-modules.specの抜粋 # RHEL 5.x/6.x: %if %{defined el5} || %{defined el6}  %if %{undefined kver}   %define klnk           %{_usrsrc}/kernels/*/include/config   %define

分散ファイルシステム

データベースを動作させる上で、安くて、速くて、信頼できる足回りはないものか? 安い : 基本的にはタダで、できないか? 当然ですが、基本的なハードウェア費用はタダじゃない前提です。 速い : シーケンシャルリードで5GB/sくらい。欲しいです。 信頼性 : 特別なハードウェアなしで、RAID6相当の信頼性が欲しいです。 拡張性 : ディスク追加だと、スケールアップしかないので、ノード追加といったスケールアウト可能なもの。 相当、無理な要求のようですが、最近の分散ファイルシステムを使えば、かなり良い線が行くのではないか?と検討中です。きっと、分散ファイルシステムでなくてもやり方や考え方を変えれば、近いものも可能かと思いますが。。。 ただ、ファイルシステムレベルで、上記が要件が満たせるようであれば、データベースはもちろん、様々な用途に使える(いや、使いやすい)んじゃないかと思うわけです。 最近、個人的によく目にする分散ファイルシステムとして Gluster File System があります。 カーネルをいじらず、お手軽に分散ファイルシステムを構築可能なのですが、カーネルをいじらないので FUSE ベースなので、パフォーマンスに難がありそうです。 ただし、他の分散ファイルシステムと、Glusterを比較したパフォーマンス結果も見当たりませんので、今後の検証ネタとしたいと思っています。 FUSEベースではなく、カーネルにパッチを当てたり、一部カーネルに取り込まれたりするものも存在します。 カーネルに取り込まれた(2.6.34にて) Ceph がありますが、まだまだ不安定との情報もあります(これはあくまでも現時点で。という意味です) また、カーネルパッチとして提供されているものとして、 Lustre File System があります。 Lustreとして面白いものとして、 ZFSonLinux に紹介されています。 Lustre自体Cephに比べ、かなり実績があるように思われます。が、あまり安いと呼べるアーキテクチャではないようです。 それは、上記の要件の信頼性がLustre自体では実装されていないからです。(要はストライプのみ実装されている)ですので、Lustreは信頼性担保のためにH/W or S/WでのRAIDを推奨しています。なので、エンタープライズで