ZabbixサーバーをHA化

 article  Comments Off on ZabbixサーバーをHA化
Jul 232014
 

CentOS 6.4で、repo.zabbix.comからzabbix-server-mysqlとzabbix-web-mysqlをインストールして稼働している状態から、PacemakerとDRBDを使ったHA化をおこなってみます。

まずはPacamakerの管理対象となるサービスを停止し、自動起動も無効化します。

for s in httpd zabbix-server mysqld; do
 service $s stop
 chkconfig $s off
done

クラスターパッケージ群を導入します。

yum install pacemaker cman pcs ccs resource-agents

DRBDはELrepoから導入します。

pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore
pcs property set migration-threshold=1
pcs property set cluster-recheck-interval=5m

DRBDのリロース設定をおこないます。

pcs -f cfg-drbd resource create drbd0 ocf:linbit:drbd drbd_resource=r0
pcs -f cfg-drbd resource add_operation drbd0 start interval=0 timeout=240s
pcs -f cfg-drbd resource add_operation drbd0 promote interval=0 timeout=90s
pcs -f cfg-drbd resource add_operation drbd0 demote interval=0 timeout=90s
pcs -f cfg-drbd resource add_operation drbd0 noftify interval=0 timeout=90s
pcs -f cfg-drbd resource add_operation drbd0 stop interval=0 timeout=100s
pcs -f cfg-drbd resource add_operation drbd0 monitor interval=20s timeout=20s role=Slave
pcs -f cfg-drbd resource add_operation drbd0 monitor interval=10s timeout=20s role=Master
pcs -f cfg-drbd master drbd0-clone drbd0 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
pcs push cfg-drbd

DRBD領域をマウントするファイルシステムリソース設定をおこないます(fs-data)。

pcs -f cfg-fs1 resource create fs-data Filesystem device=/dev/drbd/by-res/r0 directory=/data fstype=ext4 options=noatime
pcs -f cfg-fs1 resource add_operation fs-data start interval=0 timeout=60s
pcs -f cfg-fs1 resource add_operation fs-data stop interval=0 timeout=60s
pcs -f cfg-fs1 resource add_operation fs-data monitor interval=20s timeout=40s
pcs -f cfg-fs1 constraint colocation add fs-data drbd0-clone INFINITY with-rsc-role=Master
pcs -f cfg-fs1 constraint order promote drbd0-clone then start fs-data
pcs push cfg-fs1

MySQLデータベースをDRBD領域配下に移動します。

mv /var/lib/mysql /data/
mkdir /var/lib/mysql
chown mysql: /var/lib/mysql
chmod 755 /var/lib/mysql

MYSQLデータベース領域をマウントするファイルシステムリソース設定をおこないます(fs-mysql)。

pcs -f cfg-fs2 resource create fs-mysql Filesystem device=/data/mysql directory=/var/lib/mysql fstype=ext4 options=bind
pcs -f cfg-fs2 resource add_operation fs-mysql start interval=0 timeout=60s
pcs -f cfg-fs2 resource add_operation fs-mysql stop interval=0 timeout=60s
pcs -f cfg-fs2 resource add_operation fs-mysql monitor interval=20s timeout=40s

fs-dataとfs-mysqlリソースが同一ノードで動作するようにgroup設定を施したうえで反映させます。

pcs -f cfg-fs2 resource group add group0 fs-data fs-mysql
pcs push cfg-fs2

—–

pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore
pcs property set migration-threshold=1
pcs property set cluster-recheck-interval=5m

Pacamakerの管理対象となるサービスを停止します。

for s in httpd zabbix-server mysqld; do
 service $s stop
 chkconfig $s off
done

DRBDのリロース設定をおこないます。

pcs -f cfg-drbd resource create drbd0 ocf:linbit:drbd drbd_resource=r0
pcs -f cfg-drbd resource add_operation drbd0 start interval=0 timeout=240s
pcs -f cfg-drbd resource add_operation drbd0 promote interval=0 timeout=90s
pcs -f cfg-drbd resource add_operation drbd0 demote interval=0 timeout=90s
pcs -f cfg-drbd resource add_operation drbd0 noftify interval=0 timeout=90s
pcs -f cfg-drbd resource add_operation drbd0 stop interval=0 timeout=100s
pcs -f cfg-drbd resource add_operation drbd0 monitor interval=20s timeout=20s role=Slave
pcs -f cfg-drbd resource add_operation drbd0 monitor interval=10s timeout=20s role=Master
pcs -f cfg-drbd master drbd0-clone drbd0 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
pcs push cfg-drbd

DRBD領域をマウントするファイルシステムリソース設定をおこないます(fs-data)。

pcs -f cfg-fs1 resource create fs-data Filesystem device=/dev/drbd/by-res/r0 directory=/data fstype=ext4 options=noatime
pcs -f cfg-fs1 resource add_operation fs-data start interval=0 timeout=60s
pcs -f cfg-fs1 resource add_operation fs-data stop interval=0 timeout=60s
pcs -f cfg-fs1 resource add_operation fs-data monitor interval=20s timeout=40s
pcs -f cfg-fs1 constraint colocation add fs-data drbd0-clone INFINITY with-rsc-role=Master
pcs -f cfg-fs1 constraint order promote drbd0-clone then start fs-data
pcs push cfg-fs1

MySQLデータベースをDRBD領域配下に移動します。

mv /var/lib/mysql /data/
mkdir /var/lib/mysql
chown mysql: /var/lib/mysql
chmod 755 /var/lib/mysql

MYSQLデータベース領域をマウントするファイルシステムリソース設定をおこないます(fs-mysql)。

pcs -f cfg-fs2 resource create fs-mysql Filesystem device=/data/mysql directory=/var/lib/mysql fstype=ext4 options=bind
pcs -f cfg-fs2 resource add_operation fs-mysql start interval=0 timeout=60s
pcs -f cfg-fs2 resource add_operation fs-mysql stop interval=0 timeout=60s
pcs -f cfg-fs2 resource add_operation fs-mysql monitor interval=20s timeout=40s

fs-dataとfs-mysqlリソースが同一ノードで動作するようにgroup設定をおこないます。

pcs -f cfg-fs2 resource group add group0 fs-data fs-mysql
pcs push cfg-fs2

NetXMSお試し(1)

 article  Comments Off on NetXMSお試し(1)
Jan 062014
 

NetXMSという監視ツールを見つけまして試しに入れてみました。
スクリーンショットを見る限り洗練されていそうなのと、監視サーバーをWindowsで稼働させらるのも魅力的です。
OpenNMSもWindowsで稼働させることができますが、あちらはSNMPベースの監視が基本でエージェント監視方式ではありません。

タイトルに(1)と謳っていますが続編を書くかは未定です。

Debian用にはバイナリーパッケージが提供されていますので、そちらを利用します。
エージェントおよびサーバーは1台にまとめて稼働させます。

パッケージインストール

aptでインストールできるようsources.listを用意します。

# cat /etc/apt/sources.list.d/netxms.list
# NetXMS
deb http://www.netxms.org/apt squeeze main

エージェント用パッケージ、サーバー用パッケージを一式インストールします。

# apt-get update
# apt-get install netxms-base netxms-server netxms-agent

設定

エージェント用設定ファイルを用意します。

# cat /etc/nxagentd.conf
Servers = 127.0.0.1
ControlServers = 127.0.0.1
MasterServers = 127.0.0.1
LogFile = /var/log/netxms/nxagentd.log
FileStore = /var/lib/netxms/nxagentd

サーバー用設定ファイルを用意します。

# cat /etc/netxmsd.conf
DBDriver = sqlite.ddr
DBName   = /var/lib/netxms/sqlite.db
LogFile  = /var/log/netxms/netxmsd.log

ディレクトリおよびデータベース作成

ディレクトリを作成します。

# mkdir -p /var/log/netxms
# mkdir -p /var/lib/netxms/nxagentd

DBをSQLiteで作成します。

# nxdbmgr init /usr/share/netxms/sql/dbinit_sqlite.sql
# nxdbmgr check

起動

エージェントを起動します。

# systemctl start nxagentd.service

サーバーを起動します。

# systemctl start netxmsd.service

監視コンソールの起動

監視コンソールはWebアプリケーションで稼働するものとEclipseベースで稼働するものの2種類あります。
今回は手早くEclipseベースものをダウンロードページから入手して起動させます。Windows版の場合、圧縮ファイルを展開するとnxmc.exeというバイナリーがありますのでそちらを実行します。
起動するとサーバー名や認証方式を聞かれますので、
Server: netxmsdが起動しているサーバー(4701/tcpを使用します)
Login: admin
Authentication: Password
Password: netxms
を指定するとNetXMSサーバーに接続されます。

開始直後は監視項目はほとんど設定されていません。
Zabbixのように監視テンプレートが予め提供されているわけでもないようですので、ここから個々の監視項目を設定する必要がありそうです(テンプレート化は可能)。

virt-installでkvmゲストをインストール

 article  Comments Off on virt-installでkvmゲストをインストール
Jul 202013
 

かなり以前にvirt-installで仮想マシンをお手軽セットアップという記事を書きました。
前回はCentOS 5でxenゲストのインストールでしたが、今回はCentOS 6でkvmゲストです。

対話式でCentOSのインストーラーを起動する形式になりますのでコンソールが必要になりますが、グラフィカルな画面なしにシリアルコンソールを使ってインストールを実行します。

virt-install -n centos1 -r 512 --disk /var/lib/libvirt/images/centos1.img,size=8 --graphics none -x 'console=tty0 console=ttyS0,115200n8 serial' -l http://ftp.iij.ad.jp/pub/linux/centos/6/os/x86_64/

ちなみにシリアルコンソールを指定する-xオプション(–extra-args)を使用する場合、-lオプション(–location)が必須です。

インストーラーが起動されますので通常どおりインストールすれば完了。

/boot/grub/grub.confにもシリアルコンソールの設定が含まれるようになるので、次回起動時もシリアルコンソールを利用できます。

serial --unit=0 --speed=115200
terminal --timeout=5 serial console
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto console=ttyS0,115200n8 rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
        initrd /initramfs-2.6.32-358.el6.x86_64.img

接続時は

virsh console centos1

切断時は接続時のプロンプトに出るように ^] (Ctrl+^ Ctrl+])で抜けられます。

Zabbix server is not running: the information displayed may not be current

 article  Comments Off on Zabbix server is not running: the information displayed may not be current
Jul 162013
 

CentOS 6.4にrepo.zabbix.comからパッケージを導入して。
zabbix_serverプロセスは動いているし、10051ポートもLISTENしている。
/etc/zabbix/web/zabbix.conf.phpも間違いない。

$ZBX_SERVER                     = 'localhost';
$ZBX_SERVER_PORT                = '10051';

SELinux有効な環境下では(ちなみにtargetedポリシーを素のまま利用)

setsebool -P httpd_can_network_connect=true

を実施する必要があった。

Zabbix server is not running: the information displayed may not be current – ZABBIX Forums

Eclipse Gitでgithub.comにsshでPushできない

 article  Comments Off on Eclipse Gitでgithub.comにsshでPushできない
Jul 012013
 

Eclipseでgithub.comにPushしようと思ったら初回でエラーになりました。
メッセージダイアログを見ているとSSHのホスト鍵を受け入れるか否か(Yes/No)のところでエラーになっている模様です。

ssh://git@github.com:22: org.eclipse.jgit.transport.CredentialItem$YesNoType:  
The authenticity of host 'github.com' can't be established.

ここでYesを入力すればSSH接続が確立されてPushもできるようになるはずですが、入力ダイアログもYes/Noのボタンも出てこないので途方に暮れていたところ、Stack Overflowにもろ回答がありました。
egit – How to push a new project in Github from Eclipse? – Stack Overflow

Git Repository Exploringパースペクティブに切り替えて、Remotesを定義してやることできちんとPushできるようになりました。

Debian S/390 on Hercules

 article  Comments Off on Debian S/390 on Hercules
Jun 182013
 

Debian amd64 (wheezy)にHerculesを入れて動かしてみました。

手順はほぼ以下の記事のとおりになります。
Installing Debian under Hercules

変更点は

  • DASDは3390-9型(約8GB)をroot用に、3390(約900MB)をswap用に割り当て
  • インストーラーはs390x用を使用
  • IPアドレスは169.254.0.1と169.254.0.2を使用

したことぐらいです。ちなみに設定ファイルはこちら。

CPUSERIAL  000069        # CPU serial number
CPUMODEL   9672          # CPU model number
MAINSIZE   512           # Main storage size in megabytes
XPNDSIZE   0             # Expanded storage size in megabytes
CNSLPORT   3270          # TCP port number to which consoles connect
NUMCPU     1             # Number of CPUs
LOADPARM   0120....      # IPL parameter
OSTAILOR   LINUX         # OS tailoring
PANRATE    SLOW          # Panel refresh rate (SLOW, FAST)
ARCHMODE   ESAME         # Architecture mode ESA/390 or ESAME

# .-----------------------Device number
# |       .-----------------Device type
# |       |       .---------File name and parameters
# |       |       |
# V       V       V
#---      ----    --------------------
# console
001F      3270

# terminal
0009      3215

# reader
000C      3505    ./rdr/kernel.debian ./rdr/parmfile.debian ./rdr/initrd.debian autopad eof

# printer
000E      1403    ./prt/print00e.txt crlf

# dasd
0120      3390    ./dasd/LINUX.ROOT
0121      3390    ./dasd/LINUX.SWAP

# network                                 s390        realbox
0A00,0A01 CTCI    -n /dev/net/tun -t 1500 169.254.0.2 169.254.0.1

インストールは前述の手順のとおりですんなりいったのですが、リブートしてもsshできません。
コンソールからログインして確認してみると、ctc0がきちんとupしていないようです。

root@s390:~#
.ifconfig ctc0
ifconfig ctc0
ctc0      Link encap:Serial Line IP
          POINTOPOINT NOARP  MTU:32760  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@s390:~#

試しにifup ctc0をおこなってみると構文エラーがあるようです。

root@s390:~#
.ifup ctc0
ifup ctc0
/etc/network/interfaces:18: option with empty value
ifup: couldn't read interfaces file "/etc/network/interfaces"
root@s390:~#

18行目はdns-searchで、こちらの値が空は許されないようです。

root@s390:~#
.cat /etc/network/interfaces
cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ctc0
iface ctc0 inet static
        address 169.254.0.2
        netmask 255.255.255.255
        network 0.0.0.0
        broadcast 255.255.255.255
        pointopoint 169.254.0.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.11.1
        dns-search
root@s390:~#

インストール時にDomain name指定を空にしたのが敗因のようです。
インストールし直すのも面倒なので、interfacesファイルからdns-searchの行を取り除いてしまいます。

root@s390:~#
.mv /etc/network/interfaces{,.orig}
mv /etc/network/interfaces{,.orig}
root@s390:~#
.grep -v dns-search /etc/network/interfaces.orig > /etc/network/interfaces
grep -v dns-search /etc/network/interfaces.orig > /etc/network/interfaces
root@s390:~#

すると無事ifupできるようになりました。

root@s390:~#
.ifup ctc0
ifup ctc0
   615.082310! net ctc0: Connected with remote side
root@s390:~#
.ifconfig ctc0
ifconfig ctc0
ctc0      Link encap:Serial Line IP
          inet addr:169.254.0.2  P-t-P:169.254.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP  MTU:32760  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@s390:~#

ping疎通ノードにMasterを強制

 article  Comments Off on ping疎通ノードにMasterを強制
May 302013
 

Master/Slaveセットのリソースにおいて、ネットワーク疎通がOKなノードのみがMasterになれるようにするために、以下に掲載されているlocation制約を設ける方法がありました。
DRBD HowTo 1.0 – ClusterLabs

上記はcrmコマンドで設定する手順なのですが、pcsコマンドでは同様のことを定義する方法がわかりません。
MLでも質問が出ていますが、明確な回答は出ていないようです。
pcs group colocation and ping rules | Linux-HA | Pacemaker

仕方ないので、crmコマンドで定義した際に生成される内容をXMLで用意して、直接cibadminで登録しています。

# cat location-ping.xml
<constraints>
  <rsc_location id="ms-drbd-0_master_on_connected_node" rsc="ms-drbd0">
    <rule boolean-op="or" id="ms-drbd-0_master_on_connected_node-rule" role="Master" score="-INFINITY">
      <expression attribute="pingd" id="ms-drbd-0_master_on_connected_node-expression" operation="not_defined"/>
      <expression attribute="pingd" id="ms-drbd-0_master_on_connected_node-expression-0" operation="lte" value="0"/>
    </rule>
  </rsc_location>
</constraints>
# cibadmin -U -x location-ping.xml
# pcs constraint all
Location Constraints:
  Resource: ms-drbd0
    Rule: pingd not_defined  (score:-INFINITY) (id:ms-drbd-0_master_on_connected_node)
    Rule: pingd lte 0 (score:-INFINITY) (id:ms-drbd-0_master_on_connected_node)
Ordering Constraints:
Colocation Constraints:
#

PacemakerでMySQLレプリケーション構成

 article  Comments Off on PacemakerでMySQLレプリケーション構成
May 262013
 

最近のmysqlリソースエージェントでは、MySQLデータベースをMaster/Slaveセットとして構成することができます。
DRBD同様、TakeoverによってReplicationのMaster/Slaveを入れ替えることが可能となります。

ということで、CentOS 6.4のPacemakerを使ってMySQLデータベースをMaster/Slaveセットとして構成してみました。

セットアップする環境は以下になります。PacemakerとCorosync一式はCentOS提供のパッケージをインストールしクラスター構成済みです。

  • 1号機:pcmk11 (CentOS 6.4 x86_64)
  • 2号機:pcmk12 (CentOS 6.4 x86_64)

レプリケーションの設定

まずはPacemaker範囲外で、MySQLをインストールしてレプリケーションを構成します。ただしCHANGE MASTER TOは実施しません。
MySQLのレプリケーション構成手順の詳細は公式ドキュメントを参照してください。
http://dev.mysql.com/doc/refman/5.1/ja/replication-howto.html

MySQLのインストールおよび設定

MySQLをインストールし設定します。

[root@pcmk11 ~]# yum -y install mysql-server
[root@pcmk11 ~]# vi /etc/my.cnf

/etc/my.cnfは[mysqld]セクションに以下を追加します。server-idは1とします。

log-bin=mysql-bin
server-id=1

2号機も同様です。

[root@pcmk12 ~]# yum -y install mysql-server
[root@pcmk12 ~]# vi /etc/my.cnf

/etc/my.cnfは[mysqld]セクションに以下を追加します。server-idは2とします。

log-bin=mysql-bin
server-id=2

レプリケーションユーザーの作成

1号機側のみで作業します。まずMySQLを起動します。

[root@pcmk11 ~]# service mysqld start

レプリケーションユーザーを作成します。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'slavepass';

アクセス元をもっと厳格に限定したい場合は、ホスト部分を環境にあわせて設定してください。

mysqlリソースエージェントでは、通常のレプリケーション以外にもread-onlyに切り替える権限をもったユーザーが必要になるため、localhostでもレプリケーションユーザーを作成します。

mysql> GRANT SUPER,REPLICATION SLAVE,REPLICATION CLIENT,PROCESS ON *.* TO 'repl'@'localhost' IDENTIFIED BY 'slavepass';

ユーザーを作成したら反映します。

mysql> FLUSH PRIVILEGES;

これらの権限が必要な理由についてはリソースエージェントで以下のように説明されています。

<parameter name="replication_user" unique="0" required="0">
<longdesc lang="en">
MySQL replication user. This user is used for starting and stopping
MySQL replication, for setting and resetting the master host, and for
setting and unsetting read-only mode. Because of that, this user must
have SUPER, REPLICATION SLAVE, REPLICATION CLIENT, and PROCESS
privileges on all nodes within the cluster.
</longdesc>
<shortdesc lang="en">MySQL replication user</shortdesc>
<content type="string" default="${OCF_RESKEY_replication_user_default}" />
</parameter>

mysqlを停止してデータベースファイル一式を2号機にコピーします。

[root@pcmk11 ~]# service mysqld stop
[root@pcmk11 ~]# ssh pcmk12 rm -rf /var/lib/mysql
[root@pcmk11 ~]# tar cf - -C /var/lib mysql | ssh pcmk12 tar xpvf - -C /var/lib/ 

クラスターリソースのセットアップ

最初にSlaveとして稼働させる2号機をStandbyにします。

[root@pcmk12 ~]# pcs cluster standby pcmk12

クラスターリソースを登録します。

[root@pcmk11 ~]# pcs cluster cib mysql_repl
[root@pcmk11 ~]# pcs -f mysql_repl resource create mysql ocf:heartbeat:mysql binary=/usr/bin/mysqld_safe pid=/var/run/mysqld/mysqld.pid
[root@pcmk11 ~]# pcs -f mysql_repl resource update mysql replication_user=repl
[root@pcmk11 ~]# pcs -f mysql_repl resource update mysql replication_passwd=slavepass
[root@pcmk11 ~]# pcs -f mysql_repl resource add_operation mysql start interval=0 timeout=120s
[root@pcmk11 ~]# pcs -f mysql_repl resource add_operation mysql stop interval=0 timeout=120s
[root@pcmk11 ~]# pcs -f mysql_repl resource add_operation mysql monitor interval=20s timeout=30s
[root@pcmk11 ~]# pcs -f mysql_repl resource add_operation mysql monitor interval=10s role=Master timeout=30s
[root@pcmk11 ~]# pcs -f mysql_repl resource add_operation mysql monitor interval=30s role=Slave timeout=30s
[root@pcmk11 ~]# pcs -f mysql_repl resource add_operation mysql promote interval=0 timeout=120s
[root@pcmk11 ~]# pcs -f mysql_repl resource add_operation mysql demote interval=0 timeout=120s
[root@pcmk11 ~]# pcs -f mysql_repl resource add_operation mysql notify interval=0 timeout=90s
[root@pcmk11 ~]# pcs cluster push cib mysql_repl

operation timeoutの設定はmysql RAの推奨値を設定しています。

Master/Slaveセットを作成します。

[root@pcmk11 ~]# pcs resource master mysql-clone mysql master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

クラスターリソースを開始します。

[root@pcmk11 ~]# pcs resource start mysql-clone

1号機がMasterとして起動します。

[root@pcmk11 ~]# crm_mon -1
Last updated: Mon May 25 20:32:52 2013
Last change: Mon May 25 20:07:59 2013 via crm_attribute on pcmk11
Stack: classic openais (with plugin)
Current DC: pcmk11 - partition with quorum
Version: 1.1.8-7.el6-394e906
2 Nodes configured, 2 expected votes
2 Resources configured.


Node pcmk12: standby
Online: [ pcmk11 ]

 Master/Slave Set: mysql-clone [mysql]
     Masters: [ pcmk11 ]
     Stopped: [ mysql:1 ]
[root@pcmk11 ~]#

2号機のStandbyを解除します。

[root@pcmk11 ~]# pcs cluster unstandby pcmk12

2号機がSlaveのレプリケーション構成としてMySQLが起動します。

[root@pcmk11 ~]# crm_mon -1
Last updated: Mon May 25 20:46:52 2013
Last change: Mon May 25 20:16:59 2013 via crm_attribute on pcmk11
Stack: classic openais (with plugin)
Current DC: pcmk11 - partition with quorum
Version: 1.1.8-7.el6-394e906
2 Nodes configured, 2 expected votes
2 Resources configured.


Online: [ pcmk11 pcmk12 ]

 Master/Slave Set: mysql-clone [mysql]
     Masters: [ pcmk11 ]
     Slaves: [ pcmk12 ]
[root@pcmk11 ~]#

起動時の/var/log/mysqld.logを確認すると、CHANGE MASTER TOが実行されていることがわかります。

130525 21:07:40 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3
130525 21:07:40  InnoDB: Initializing buffer pool, size = 128.0M
130525 21:07:41  InnoDB: Completed initialization of buffer pool
130525 21:07:41  InnoDB: highest supported file format is Barracuda.
130525 21:07:41 InnoDB Plugin 5.1.69 started; log sequence number 262393953
130525 21:07:41 [Note] Event Scheduler: Loaded 0 events
130525 21:07:41 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.1.69-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
130525 21:07:44 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='', master_port='3306', master_log_file='', master_log_pos='4'. New state master_host='pcmk11', master_port='3306', master_log_file='', master_log_pos='4'.
130525 21:07:44 [Note] Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log '/var/lib/mysql/mysql-relay.000001' position: 4
130525 21:07:44 [Note] Slave I/O thread: connected to master 'repl@pcmk11:3306',replication started in log 'FIRST' at position 4

あとはpcs cluster standby pcmk11コマンドでMaster側をStandbyにするとMasterが切り替わります。
Masterが切り替わったらpcs cluster unstandby pcmk11してStandby解除するとpcmk11はSlaveとして稼働を開始します。

また、cib.xmlを見てみるとバイナリログの位置情報がノードの属性として記録されていることがわかります。

<nodes>
  <node id="pcmk12" uname="pcmk12">
    <instance_attributes id="nodes-pcmk12">
      <nvpair id="nodes-pcmk12-pcmk11-log-file-mysql" name="pcmk11-log-file-mysql" value="mysql-bin.000001"/>
      <nvpair id="nodes-pcmk12-pcmk11-log-pos-mysql" name="pcmk11-log-pos-mysql" value="1320619"/>
    </instance_attributes>
  </node>
  <node id="pcmk11" uname="pcmk11">
    <instance_attributes id="nodes-pcmk11"/>
  </node>
</nodes>

人手で確認してCHANGE MASTER TOを実行する必要がないため、セットアップも非常に楽になります。

CentOS 6.4でvmware-config-tools.plが失敗

 article  Comments Off on CentOS 6.4でvmware-config-tools.plが失敗
May 252013
 

カーネルアップデート後にVMware Toolsの再設定を実施しようとしたら失敗しました。

# vmware-config-tools.pl
:
Creating a new initrd boot image for the kernel.
vmware-tools-thinprint start/running
initctl: Job failed to start
Unable to start services for VMware Tools

Execution aborted.

#

どうもfuse-libsパッケージを削除してしまっていたことが原因のようで、インストールしたらあっさり解決。

# yum -y install fuse-libs
# vmware-config-tools.pl
:
Creating a new initrd boot image for the kernel.
vmware-tools-thinprint start/running
vmware-tools start/running
The configuration of VMware Tools 9.2.3 build-1031360 for Linux for this
running kernel completed successfully.

You must restart your X session before any mouse or graphics changes take
effect.

You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line.

To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.

Enjoy,

--the VMware team

#

package-cleanup –leavesでリストアップされるので深く考えずに削除してしまったのが敗因です。

CentOS6.4 / RHEL6.4でcrmコマンド

 article  Comments Off on CentOS6.4 / RHEL6.4でcrmコマンド
May 042013
 

Red Hat 6.4からPacemakerのコマンドライン管理ツールがcrmからpcsに変更になりました。
pcsだとシンプルに設定できない項目等もありますので、どうしても慣れ親しんだcrmコマンドを使いたい場合は、openSUSE.orgのリポジトリで提供されているものを導入することができます。

yum install python-dateutil
rpm -Uvh http://download.opensuse.org/repositories/network:/ha-clustering/RedHat_RHEL-6/x86_64/pssh-2.3.1-15.1.x86_64.rpm
rpm -Uvh http://download.opensuse.org/repositories/network:/ha-clustering/RedHat_RHEL-6/x86_64/crmsh-1.2.5-55.3.x86_64.rpm

ちなみに私が設定したかった項目はこれです。
DRBD HowTo 1.0 – ClusterLabs