2017年5月28日日曜日

CentOS 7系でSheeodogを動かす - インストール・設定編

Sheepdogをインストールする場合、ソースコードをダウンロードしてコンパイルする(それからrpmを作成するなど)の手順が必要になってきます。
Sheepdogではクラスタ管理にcorosync / zookeeperが選択できるが、今後はzookeeperを使ってスケールするような風潮が見られるため(管理上限の制限などもふくめて)、zookeeperを使ってインストールする方が望ましいです。
しかし、標準的なインストールだとcorosyncのみをサポートしていること、またzookeeperを一緒にインストールしようとするとかなり面倒くさい。
そこで、簡単に試そうとするならば、私が作成したel7用のrpmがダウンロード可能なので、使うことをお勧めします。
※これからの手順はこのblogからリンクされているパッケージインストールを元に説明します。

インストール

1.必要なパッケージをダウンロードする。
 一箇所にまとめて保存してください。md5sumを確認することをお忘れなく。

2. 全てのパッケージをインストールする。
 sheepfsを使いたい場合はsheepfsパッケージもインストールしてください。
 ※環境によってはfuse関連のパッケージのインストールが必要かもしれません。
  またzookeepkerがすでに入っている環境の場合は競合するかもしれません。

インストールは以上です。rpmインストールができると非常に簡単ですネ。

設定


大きく分けて、zookeeperの設定とsheepdogの設定があります。

zookeeperの設定

zookeeperの設定は2箇所あります。

1. /etc/zookeeper/zoo.cfg の設定
クラスタを組むサーバの設定をします。既存のzoo.cfgに追加します。書式は次の通りです。 ※後ろのポート番号の説明は省略します。
server.<サーバid>=<サーバIP address>:2888:3888
これをクラスタ分を登録します。
server.1=172.17.29.4:2888:3888
server.2=172.17.29.5:2888:3888
server.3=172.17.29.6:2888:3888

2. /var/lib/zookeeper/data/myid の設定
myidは自サーバの番号を記述します。例えば、zoo.cfgのserver.3(172.17.29.6)のサーバであれば3です。参加するクラスタ全サーバでmyidファイルを作成します。
3

Sheepdogの設定

sheepdogの設定はファイルの修正が1箇所とファイルを1つ作成します。

1. /usr/lib/systemd/system/sheepdog.service の修正
デフォルトだと環境ファイルが読み込まれないので、読み込ませるための修正を行います。
修正前:
EnvironmentFile=-/etc/sysconfig/sheepdog

修正後:
EnvironmentFile=/etc/sysconfig/sheepdog

2. /etc/sysconfig/sheepdogファイルの作成
環境変数を設定します。デフォルトではcorosyncを使うように設定されているので、zookeeperへの変更と、クラスタの登録を行います。
SHEEP_OPTS="/storage/sheepdog/ -c zookeeper:172.17.29.4:2181,172.17.29.5:2181,172.17.29.6:2181"

以上でsheepdogの設定は終了です。

2017年5月3日水曜日

CentOS 7系でSheeodogを動かす

気づけばこのBlogも放置されていますね。少なくとも私が会社を変わってから1年以上は放置されているでしょうか。
時間ができたのと、業務で必要になってきそうなので、本格的に分散ブロックストレージの検証記事を書いていきたいと思っています。

まず始めにNTTの研究所が開発を行ったSheepdogです。

Sheepdogとは?

7~8年前から開発はされていたのですが、あまり日の目を見ることがなく日本でもドキュメントが少なく、一部企業で採用された、や、NTTデータがソリューションを発表したらしいという情報しかなく、触りたい人もあまり触れていないのが実情?(そもそも知らない?)のではないかと思います。

Sheepdogは分散ストレージでもファイルベースやNFSベースではなく、ブロックデバイスとしてマウントできるのが特徴です。
具体的に何がうれしいか?って、仮想マシンのDiskに最適なのですね。
※sheepdogはKVM(qemu)を使うことを前提に設計されています。

ただインストールするのは自己満足でしかならないので、パッケージを作成してインストールを行おうと思っています。

できたパッケージは下記に公開していますので、今すぐ使ってみたいという方はどうぞ持って行ってください。

パッケージ作成・インストールから使うまで

1ページに入れるのと記事が大きくなりすぎそうなので、分割しました。
  1. [作成中]パッケージ作成
  2. [作成中]インストール・設定 (zookeeper / sheepdog)
  3. [作成中]使い方

パッケージ

今回作成したものを公開します。
※CentOS Linux release 7.3.1611 (Core)  でパッケージを作成しています。
 また、自己責任でご使用ください。

URL:
6bb56fddd39fc1cb8dea0954b4d63fa3  sheepdog-1.0_122_ge712680-1.el7.centos.x86_64.rpm
562c67e5d822ef69a54d53db4a7295af  sheepdog-sheepfs-1.0_122_ge712680-1.el7.centos.x86_64.rpm
2ffc225822ec2ad10ed4c4c3b971c956  zookeeper-3.4.10-1.x86_64.rpm
db6a9582a1c70fa01f9e74f56d81cd4f  libzookeeper-3.4.10-1.x86_64.rpm
666df47308c45bbdfa025a050b78dcae  sheepdog-zookeeper-1.0_122_ge712680-1.el7.centos.x86_64.rpm