今回もStashの高可用性を目指してクラスタを組んでいきたいと思います。
前回までで、サーバーと、Stashのプロセスの冗長化は一旦完了したので、今回は一番重要なデータ保存領域の冗長化を目指します。
お知らせ
今までAtlassian Stash を冗長化しようと頑張ってきましたが、つい先日なんとAtlassian Stashがなくなってしまいました。
今度からは生まれ変わった? Bitbucket Server をよろしくお願いします。
・・・閑話休題・・・
それでは、Stash改めBitbucket Serverのストレージを冗長化したいと思います。
Atlassianの公式によるとストレージは GFS2 + DRBD でストレージの冗長化を行っていますが、
今回は個人的な興味で、GlusterFSを使って冗長構成をしてみたいと思います。
事前準備
VagrantにDISKを追加
Virtualbox コンソール経由で、node01,node02 にDISKを追加します。
Stashのデータに使用するので、保存するデータの容量によって大きさをかんがえる必要があります。
今回は仮に8GBとして データ用にパーティション /dev/sdb1 を作成しました。
GlusterFSのインストール(全ノード)
パッケージのインストール
|
|
通信ポートの開放
まずは、通信に必要なポートを開放します。
今回は実験用途なのでどこからでも通信可能に設定してしまいます。
/usr/lib/firewalld/services/glusterfs.xml を以下の内容で作成します。
作成したファイルをもとにファイワォールの設定を変更します。
GlusterFS Volumeの作成
次にGlusterFSで使用するディスクの準備をします。
ファイルシステムの作成
GlusterFSは共有するボリュームのファイルシステムをXFSにする必要があります。
まずはデータ用のボリュームをXFSで用意します。
|
|
/etc/fstab の末尾にエントリを追加します。
マウントします。
GlusterFSの起動
|
|
GlusterFSのノード登録
node01
1gluster peer probe node02node02
1gluster peer probe node01
GlusterFSのVolume作成(任意の1ノードで実行)
|
|
|
|
GlusterFSのマウント
マウントポイントの作成
まずマウントポイントを作成します。
既存のStashのデータディレクトリはあとでGlusterFS上にコピーするためリネームして退避しておきます。
fstabの修正
次に各ノードで /etc/fstab にエントリを追加します。
node01
1node01:stash_vol /var/atlassian/application-data/stash glusterfs defaults 0 0node02
1node02:stash_vol /var/atlassian/application-data/stash glusterfs defaults 0 0
ファイルシステムのマウント
次に、両方のノードでglusterfsをマウントします。
既存データのコピー
次に、今までのデータをどちらか一方のノードでコピーします
これで課題だったDISKの冗長化も出来、Stash改めBitbucketServerのクラスタリングが完了しました。
実際の運用では、定期的なデータのバックアップは行う事はあっても、クラスタリングをすることはまれかもしれませんが、
クラスタリングを検討されている方の参考になれば幸いです。
※ このシリーズの記事はあくまで検証用途でクラスタの設定を行っているため、実際の環境では使用に耐えない可能性があります。
実際にHAを構成を行う場合には十分な検証を行うことをおすすめします。