UbuntuVPSでRiakクラスターを作成する方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。
理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このガイドはもう維持されていません。
代わりに参照してください:
このガイドは参考として役立つかもしれませんが、他のUbuntuリリースでは機能しない可能性があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。
序章
Riakは、可用性が高く、フォールトトレラントでスケーラブルなデータ管理を提供する分散データベースです。
このガイドでは、64ビットのUbuntu12.04VPSインスタンスを使用してRiakクラスターをインストールおよび構成する方法について説明します。 5つの別々のクラウドサーバーを使用します。
RiakのWebサイトでは、最高のパフォーマンスを得るために4 GB以上のRAMを搭載したマシンを使用することを推奨しているため、そのサイズのクラウドサーバーを使用します。
ルートを使用してVPSを構成します。 必ずrootとして各VPSにログインするか、「su」を使用して適切な特権を取得してください。
インストール
セットアップする各ノードで、次のインストール手順が必要になります。
RiakのWebサイトからダウンロードできる、Ubuntuで利用可能なコンパイル済みのバイナリパッケージがあります。
まず、Riak aptリポジトリを信頼するようにapt-getを設定し、ソースに追加します。
<pre>curl http://apt.basho.com/gpg/basho.apt.key | apt-key add -
bash -c“ echo deb http://apt.basho.com $(lsb_release -sc)main> /etc/apt/sources.list.d/basho.list”
これで、apt-getデータベースを更新してRaikをインストールできます。
<pre>apt-get update
apt-get install riak
これでRiakがインストールされました。 使用する他のマシンでもこの手順を繰り返すことを忘れないでください。
Riakの構成
Riakがインストールされたので、各ノードを構成する必要があります。 各マシンで次の手順を実行します。
app.configを変更する
現在実行中のRiakのインスタンスがないことを確認し、Riak構成ディレクトリに移動して、プライマリ構成ファイルを開きます。
<pre>riak stop
cd / etc / riak nano app.config
このマシンのネットワーク設定を反映するために、2つの値を変更します。
「{pb、[{“127.0.0.1″、8087}]}」という行を検索します。 マシンのIPアドレスを反映するように「127.0.0.1」を変更します。
<pre>{pb, [ {"<span class="highlight">Your.IP.Address</span>", 8087 } ]},</pre>
次に、「{http、[{“127.0.0.1″、8098}]}」という行で同様の置換を実行します。 ここでも、マシンのIPアドレスを使用します。
<pre>{http, [ {"<span class="highlight">Your.IP.Address</span>", 8098 } ]},</pre>
ファイルを保存して閉じます。
vm.argsの変更
次に、「vm.args」ファイルを変更します。
nano vm.args
ノード名を指定する行を見つけて変更します。 「[email protected]」と表示されます。 IPアドレス以外はすべて同じにしてください。
-name riak@Your.IP.Address
ファイルを保存して閉じます。
Riakを起動します
Riakノードの起動は簡単です。
<pre>riak start</pre>
<pre>!!!!
!!! 警告:ulimit-nは1024です。 4096が推奨される最小値です。 !!!
上記の警告が表示される可能性があります。 一時的に修正しましょう。 これは後で永続的にします。
<pre>riak stop
ulimit -n 65536
これで、Riakを再起動して、ulimit警告が消えるかどうかを確認できます。
riak start
クラスターの作成
ガイドに従っている場合は、5つのノードが構成されて実行されているはずです。
ただし、現在は独立して運用されています。 それらはすべて、独立したデータセットの100 % oを処理しており、通信していません。 このセクションでは、それらをクラスターにマージします。
次の手順では、すべてのRiakノードを最初のノードに結合します。 Riakは、完了すると、それらの間でデータを自動的に再配布します。
2番目のノードで、ローカルRiakインスタンスに最初のRiakノードに参加するように指示します。
riak-admin cluster join riak@First.Riak.IP
Success: staged join request for 'riak@Second.Riak.IP' to 'riak@1First.Riak.IP'
これにより、参加のアクションが設定されますが、まだ実行されません。 最初に計画された変更を確認する必要があります。
riak-admin cluster plan
これにより、計画された変更の結果が表示されます。 Riakは、アクションを実行する前に、目的の変更を表示します。
提案が正しいと思われる場合は、変更をコミットします。
<pre>riak-admin cluster commit</pre>
<pre>Cluster changes committed</pre>
次のように入力すると、新しいクラスターグループが表示されます。
riak-admin member-status
他のノードに対してこの手順を繰り返して、完全なクラスターグループを形成します。
設定の最適化
セットアップが完了したので、戻って、目的に適さないいくつかの設定を修正することが重要です。
変更する必要があるのは、Riakの起動時に警告された「ulimit」設定です。 この設定を永続的に変更するファイルを作成します。
<pre>nano /etc/default/riak</pre>
次の行を追加します。これは、コンピューターが毎回Riakを起動するときに実行されます。
<pre>ulimit -n 65536</pre>
ファイルを保存して閉じます。
次に、Riakが最適化する必要があると考えていることを確認する必要があります。
<pre>riak-admin diag</pre>
<pre>[critical] vm.swappiness is 60, should be no more than 0
[クリティカル]net.core.wmem_defaultは229376、少なくとも8388608である必要があります[クリティカル] net.core.rmem_defaultは229376、少なくとも8388608である必要があります[クリティカル] net.core.netdev_max_backlogは1000であり、少なくとも10000である必要があります[クリティカル] ] net.core.somaxconnは128、少なくとも4000[クリティカル]net.ipv4.tcp_max_syn_backlogは2048、少なくとも40000[クリティカル]net.ipv4.tcp_fin_timeoutは60、15以下[クリティカル] net.ipv4.tcp_tw_reuseは0であり、1である必要があります[通知]データディレクトリ/ var / lib / riak/bitcaskは「noatime」でマウントされていません。 パフォーマンスを向上させるために、「noatime」フラグを使用してディスクを再マウントしてください。
メッセージの大きなリストも表示される可能性があります。最初のメッセージは次のように始まります。
[warning] The following preflists do not satisfy the n_val:
これは、データを正しく分散するのに十分なノードがクラスターにないことを意味します。 より多くのノードをクラスターに参加させると、これらのメッセージは消えます。
すべての「重要な」通知の調整に取り組みます。 これらはすべて次のように調整できます。
<pre>sysctl <span class="highlight">setting</span>=<span class="highlight">value</span></pre>
各コマンドは「riak-admindiag」プログラムの出力に依存しますが、同じ形式に従います。
診断コマンドを再実行して、値が修正されているかどうかを確認します。
<pre>riak-admin diag</pre>
<pre>[notice] Data directory /var/lib/riak/bitcask is not mounted with 'noatime'. Please remount its disk with the 'noatime' flag to improve performance.</pre>
通知メッセージは無視してかまいません。 新しい値により、ノードの問題が修正されました。
これらの値は、現在のセッションにのみ存在します。 値を永続化するには、「sysctl.conf」ファイルを編集する必要があります。
<pre>nano /etc/sysctl.conf</pre>
異なるキーのそれぞれを検索し、「riak-admindiag」コマンドで提案されているように値を調整します。 設定が存在しない場合は、リストの一番下に追加します。
<pre><span class="highlight">setting</span>=<span class="highlight">value</span></pre>
これで、ノードが正しく構成されました。 続行するには、各マシンで上記の手順を繰り返します。
クラスターのテスト
クラスターを簡単にテストするためのファイルを追加できます。 まず、使用したい画像を取得します。 DigitalOceanWebサイトの画像を使用します。
<pre>cd ~
wget https://www.digitalocean.com/assets/v2/footer_mascott.png
これで、次のコマンドを使用してイメージをクラスターに配置できます。
IPコマンドをノードのIPアドレスに置き換え、ポートを「/etc/riak/app.config」ファイルのhttpポートに置き換えます。 デフォルトでは、「8098」になっているはずです。
<pre>curl -XPUT http://<span class="highlight">IPAddress</span>:<span class="highlight">Port</span>/riak/images/sammy.png -H "Content-type: image/png" --data-binary @footer_mascott.png</pre>
これで、次のコマンドからブラウザでURLを指定することで、画像を表示できるようになります。
<pre>http://<span class="highlight">IPAddress</span>:<span class="highlight">Port</span>/riak/images/sammy.png</pre>
画像が見えるはずです。
結論
これで、Riakクラスターが正しくインストールおよび構成されているはずです。 これで、クラスターは構成されたノード間でデータを自動的に分散します。