「DRBDの仕組みを学ぶ」を連載させていただきました
DRBD仕組みを学ぶという連載を2015年の9月から約1年半連載をさせていただきました。
先日最終回が掲載されました。
個人的に全体を振り返ってみたいと思います。
DRBD仕組みを学ぶ
www.atmarkit.co.jp
DRBDは難しい?
私がDRBDを始めて触ったのは4年前ぐらいですが、当初の印象としてなんだか「とっつきにくいなあ」という印象でした。
ググッても出てくる情報がわかりにくいし、挙句に情報が間違っている?ものがあったりしました。
そんな経験から連載させていただいたものは基本的にわかりやすく丁寧に書いたつもりです。また記事掲載前に何も考えずに記事通りにコマンドを流して目的とする環境が構築できることも確認するよう心がけました。
記載してから少し月日が経過したものに関してはうまくいかないところがあるかもしれませんが、そこはご容赦いただければと思います。
DRBDのバージョン
第1回から第13回まではバージョン8.4
第14回から第16回まではバージョン9
を前提に書いております。
2017年5月現在ですと1対1のプライマリ/セカンダリ構成を作る場合は8.4の使用をオススメします。
SDS的な使い方をする場合のみDRBD9をオススメします。現時点では8.4と9は別ソフトのような考え方で良いと思います。用途に合わせて使用してください。
今後開発が進みバージョン9だけになる時がくるとは思います。
DRBD基本構成
連載の方で何度も書いてはいますがDRBDはデータをブロックデバイス単位でリアルタイムにレプリケーションするソフトです。
DRBDだけですと障害時に自動的に切り替えたりすることはできません。
自動切り替え
自動切り替えする際は
DRBD + Pacemaker + Corosyncを使います。
連載ですと第5回と第6回が該当します。
www.atmarkit.co.jp
www.atmarkit.co.jp
数年前ですとDRBD + Pacemaker + Heartbeatという構成もありましたがHeartbeatは開発が終了しているため、特別な事情がないかぎりHeartbeatは使用しない方は良いです。
手動切り替え
障害時に自動的に切り替えずに確認などをした後に手動で切り替える方がが都合が良い場合もあります。
手動で切り替える際は
DRBDのみ使います。
連載ですと第4回が該当します。
遠隔地へのリプリケーション
遠隔地へのリプリケーションをする場合は
DRBD + DRBD Proxyを使います
連載ですと第7回が該当します。
以上です。DRBDを使う方の手助けに少しでもなれば幸いです。
LibreNMSをインストールしてみた
先日Facebookでlibrenmsというツールを知り早速インストールしてみました。
ネットワーク内のサーバだったりスイッチだったりを管理できるツールみたいです。
以下に公式の手順があります。
github.com
これのとおりで上手くいきましたが、実際に自分が実施したものをメモ代わりに残しておきたいと思います。
インストール環境
私がインストールした環境は以下になります。
OS CentOS7.2
仮想環境
では早速インストール時のメモです。
データベースインストール
yum install mariadb-server mariadb
データベース起動
service mariadb start
データベース初期化
# mysql_secure_installation <省略> Set root password? [Y/n] Y ←「Y」を入力 New password: dbpass ←rootのパスワードを入力 Re-enter new password: dbpass ←rootのパスワードを再入力 Password updated successfully! Reloading privilege tables.. ... Success! <省略> Thanks for using MariaDB! #
データベース作成
データベースを作成します。私はdbpassというパスワードにしていますが、環境によって読み替えて実施ください。
# mysql -uroot -p MariaDB [(none)]> CREATE DATABASE librenms; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost' IDENTIFIED BY 'dbpass'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye
MariaDB設定ファイル修正
エディタで設定ファイルを修正します。以下の例ではviエディタを使用しています。
[mysqld] セクションに追記します。
# vi /etc/my.cnf.d/server.cnf <省略> [mysqld] innodb_file_per_table=1 sql-mode="" <省略>
修正したらデータベースを再起動します。
# service mariadb restart
Webサーバインストール
ここは公式ページそのままでOKでした。
一応コピペしておきます。
# yum install epel-release # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # yum install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common httpd net-snmp mariadb ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie php70w-mcrypt fping git # pear install Net_IPv4-1.3.4 # pear install Net_IPv6-1.2.2b2
PHPファイル修正
PHPのタイムゾーン設定を修正します。
date.timezoneのコメントアウトを外して「Tokyo/Asia」を設定します。
# vi /etc/php.ini
<省略>
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Tokyo/Asia
<省略>
librenmsユーザを作成
以下のコマンドでユーザを作成します。
# useradd librenms -d /opt/librenms -M -r # usermod -a -G librenms apache
ファイルダウンロード
Gitからファイルをダウンロードします。
# cd /opt # git clone https://github.com/librenms/librenms.git librenms
Webインターフェイス設定
以下のコマンドでWebインターフェイス用ディレクトリを作成
# cd /opt/librenms # mkdir rrd logs # chmod 775 rrd
次に新規でlibrenms.confを作成します。
# vi /etc/httpd/conf.d/librenms.conf <VirtualHost *:80> DocumentRoot /opt/librenms/html/ ServerName librenms.example.com CustomLog /opt/librenms/logs/access_log combined ErrorLog /opt/librenms/logs/error_log AllowEncodedSlashes NoDecode <Directory "/opt/librenms/html/"> Require all granted AllowOverride All Options FollowSymLinks MultiViews </Directory> </VirtualHost>
次にデフォルトファイルを削除します。
# rm -f /etc/httpd/conf.d/welcome.conf
Webサーバ再起動
以下のコマンドでWebサーバを再起動します。
# service httpd restart
Webインターフェイスよりlibrenmsをインストール
以下にブラウザでアクセスしてインストーラーを起動します。
http://<サーバIPアドレス>/install.php
アクセスすると以下のように表示されます。
必要なモジュールが全てインストールされて「yes」となっていることを確認します。
確認したら「Next Stage」をクリックします。
次にデータベースの情報を入力します。
DB Passだけ入力して「Next Stage」をクリックします。
問題がなければ以下のようにインストールが開始されます。
画面の一番したを確認します。
successfulとなっていることを確認します。確認したら「Goto Add User」をクリックします。
次にユーザを作成します。「ユーザ名」「パスワード」「メールアドレス」を入力します。
入力したら「Add User」をクリックします。
User has been added successfullyとなっていることを確認します。
確認したら「Generate Config」をクリックします。
以下は私の手順が悪かった可能性がありますが、コンフィグを作成できなかったために表示されたコンフィグを手動追記しました。
以下の手順で手動で追記しました。
# cd /opt/librenms/ # vi config.php <表示されたものをコピペ>
ここまでで一応Webでのインストールは終わりです。
しかしインストールは終わっていないので手順に戻ってくださいとあります。
一応ログインできることを確認します。ブラウザで以下にアクセスします。
http://<サーバIPアドレス>/
成功していればログイン画面が表示されます。
ログインすると以下のような画面になります。
SNMP設定
ではインストール作業に戻ります。
SNMP設定をします。まずサンプルファイルをコピーします。
# cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
次に設定を追記します。
環境に合わせて修正してください
# vi /etc/snmp/snmpd.conf
修正後に以下を実行します。
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x /usr/bin/distro service snmpd restart
cron設定
次にcronを設定します。
# cp librenms.nonroot.cron /etc/cron.d/librenms
権限変更&サービス自動起動
以下のコマンドで権限とサービス自動起動設定を実施します。
# chown -R librenms:librenms /opt/librenms # systemctl enable httpd # systemctl enable mariadb
最終ステップ
以下を実行します。
# cd /opt/librenms # ./validate.php ==================================== Version info: Commit SHA: 8b68429a0619c627256c31299765ffddb2bdd9dd DB Schema: 138 PHP: 7.0.10 MySQL: 5.5.50-MariaDB RRDTool: 1.4.8 SNMP: NET-SNMP version: 5.7.2 ==================================== [OK] Database connection successful
Bacula7.4.2リリース
Baculaの最新版のリリース情報です。
最新版は7.4.2になります。(2016年8月4日現在)
7.4.1からの変更点
主な変更点はMySQL 5.7関連のバグ修正です。
MySQL 5.7を使っていない場合は早急なアップデートは必要ないとのことです。
その他の詳細は英語ですが以下をご参照ください。
http://blog.bacula.org/release-7-4-2/