参考URL
https://wiki.ubuntu.com/ClusterStack/LucidTesting#Test cases for cluster components in Ubuntu 10.04
[ 内容 ]
DRBDを使用し、2台のホスト間でデータミラーリングができるようにセットアップする。
DRDB +クラスタの組み合わせで使用するのが一般的で、DRDBのみだと、実用性があまりないが、DRDBを使用すると、どのようなことができるか確認する。
[ マシン ]
2台マシンを用意
ubuntu-1 , ubuntu-2 (Ubuntu 10.04.1 LTS , 2.6.32-25-generic-pae )
[ 手順 ]
・DRBDインストール前の準備
・DRBDをインストール
・DRBD用のパーティションの準備
・DRBDのコンフィグのセットアップ
・メタデータの作成
・DRBDを起動
・初期設定
・ファイルシステムの作成
・データがミラーリングされるかチェック
[ 設定例 ]
・DRBDインストール前の準備
・apt で DRBD をインストールできるように、sources.list に1行目を追加
root@ubuntu-1:~# cat /etc/apt/sources.list
deb http://jp.archive.ubuntu.com/ubuntu/ lucid main restricted universe
deb http://jp.archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe
deb http://security.ubuntu.com/ubuntu lucid-security main restricted universe
deb http://ppa.launchpad.net/ubuntu-ha/lucid-cluster/ubuntu lucid main <-追加
エラーが。
root@ubuntu-1:~# apt-get update
W: GPG error: http://ppa.launchpad.net lucid Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 8F63FC3CB64F0AFA
http://www.rebelzero.com/fixes/apt-get-gpg-error-public-key-not-available/88
root@ubuntu-1:~# apt-key list
/etc/apt/trusted.gpg
--------------------
pub 1024D/437D05B5 2004-09-12
uid Ubuntu Archive Automatic Signing Key
sub 2048g/79164387 2004-09-12
pub 1024D/FBB75451 2004-12-30
uid Ubuntu CD Image Automatic Signing Key
公開鍵をインポート
3CB64F0AFAu-1:~# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8F63FC3CB64F0AFA
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv-keys 8F63FC3CB64F0AFA
gpg: requesting key B64F0AFA from hkp server keyserver.ubuntu.com
gpg: key B64F0AFA: public key "Launchpad ubuntu-ha" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
root@ubuntu-1:~#
root@ubuntu-1:~# apt-key list
/etc/apt/trusted.gpg
--------------------
pub 1024D/437D05B5 2004-09-12
uid Ubuntu Archive Automatic Signing Key
sub 2048g/79164387 2004-09-12
pub 1024D/FBB75451 2004-12-30
uid Ubuntu CD Image Automatic Signing Key
pub 1024R/B64F0AFA 2009-06-10
uid Launchpad ubuntu-ha
・DRBDをインストール
root@ubuntu-1:~# apt-get install linux-headers-server psmisc
root@ubuntu-1:~# apt-get install drbd8-utils
root@ubuntu-2:~# apt-get install linux-headers-server psmisc
root@ubuntu-2:~# apt-get install drbd8-utils
・DRBD用のパーティションの準備
メタデータ用とデータ用のパーティションは同じにする ( わけることも可能 )
ファイルシステムを作成する必要はない。
root@ubuntu-1:~# fdisk /dev/vda
メタデータ用 + データ用 : /dev/vda1
root@ubuntu-1:~# fdisk -l | grep vda
Disk /dev/vda: 314 MB, 314572800 bytes
/dev/vda1 1 609 306904+ 83 Linux
他方(ubuntu-2)も同じ。
root@ubuntu-2:~# fdisk -l | grep vda
Disk /dev/vda: 314 MB, 314572800 bytes
/dev/vda1 1 609 306904+ 83 Linux
・DRBDのコンフィグのセットアップ
コンフィグは /etc/drbd.conf , /etc/drbd.d/global_common.conf , /etc/drbd.d/*.res
*.res に DRBDで使用するコンフィグを記述する
両ホスト ( ubuntu-1 , ubuntu-2 ) ともに同じコンフィグ
ホスト名 ( on ubuntu-1 or ubuntu-2 ) は uname -n で表示されるホスト名を記述する。
root@ubuntu-1:~# cat /etc/drbd.d/disk0.res
resource disk0 {
protocol C;
net {
cram-hmac-alg sha1;
shared-secret "hello";
}
on ubuntu-1 {
device /dev/drbd0;
disk /dev/vda1;
address 192.168.122.136:7788;
meta-disk internal;
}
on ubuntu-2 {
device /dev/drbd0;
disk /dev/vda1;
address 192.168.122.254:7788;
meta-disk internal;
}
・メタデータの作成
両ホストで実行。disk0 は resource で設定した名前 ( resource disk0 ) を指定。
root@ubuntu-1:~# drbdadm create-md disk0
・DRBDを起動
root@ubuntu-1:~# /etc/init.d/drbd start
* Starting DRBD resources
[ d(disk0) [11746.763543] block drbd0: meta data flush failed with status -95, disabling md-flushes
n(disk0) ]..........
***************************************************************
DRBD's startup script waits for the peer node(s) to appear.
- In case this node was already a degraded cluster before the
reboot the timeout is 0 seconds. [degr-wfc-timeout]
- If the peer was available before the reboot the timeout will
expire after 0 seconds. [wfc-timeout]
(These values are for resource 'disk0'; 0 sec -> wait forever)
To abort waiting enter 'yes' [ 15]:yes
...done.
root@ubuntu-1:~#
ちなみにdrdbモジュールを使用(ロード)している。
root@ubuntu-1:~# lsmod | grep drbd
drbd 256663 3
ステータス確認 ( ubuntu-2 側の drdb を起動する前 )
root@ubuntu-1:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-1, 2010-10-12 10:44:31
m:res cs ro ds p mounted fstype
0:disk0 WFConnection Secondary/Unknown Inconsistent/DUnknown C
ubuntu-2 の drdb を起動
root@ubuntu-2:~# /etc/init.d/drbd start
ステータス確認
root@ubuntu-1:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-1, 2010-10-12 10:44:31
m:res cs ro ds p mounted fstype
0:disk0 Connected Secondary/Secondary Inconsistent/Inconsistent C
root@ubuntu-2:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-2, 2010-10-12 10:45:58
m:res cs ro ds p mounted fstype
0:disk0 Connected Secondary/Secondary Inconsistent/Inconsistent C
・初期設定
初回時、ローカルディスクの状態が Inconsistent になっているので、強制的に Primary にする。
root@ubuntu-1:~# drbdadm -- --overwrite-data-of-peer primary all
同期中
root@ubuntu-1:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-1, 2010-10-12 10:44:31
m:res cs ro ds p mounted fstype
0:disk0 SyncSource Primary/Secondary UpToDate/Inconsistent C
... sync'ed: 4.0% (298664/306856)K
root@ubuntu-1:~#
同期が完了すると、Primary/Secondary , ローカルディスクの状態が UpToData/UpToDate になる。
root@ubuntu-1:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-1, 2010-10-12 10:44:31
m:res cs ro ds p mounted fstype
0:disk0 Connected Primary/Secondary UpToDate/UpToDate C
root@ubuntu-2:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-2, 2010-10-12 10:45:58
m:res cs ro ds p mounted fstype
0:disk0 Connected Secondary/Primary UpToDate/UpToDate C
下記コマンドでも、どちらが Primary かの確認可能
root@ubuntu-1:~# drbdadm role all
Primary/Secondary
root@ubuntu-2:~# drbdadm role all
Secondary/Primary
・ファイルシステムの作成
プライマリで実行する
root@ubuntu-1:~# mkfs.ext3 /dev/drbd0
マウント
root@ubuntu-1:~# mount -t ext3 /dev/drbd0 data
root@ubuntu-1:~# df data/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/drbd0 297141 10287 271512 4% /root/data
・データがミラーリングされるかチェック
プライマリでファイルを作成
root@ubuntu-1:~# echo hello > data/hello.txt
root@ubuntu-1:~# cat data/hello.txt
hello
プライマリを停止
root@ubuntu-1:~# /etc/init.d/drbd stop
セカンダリをプライマリにする
root@ubuntu-2:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-2, 2010-10-12 10:45:58
m:res cs ro ds p mounted fstype
0:disk0 WFConnection Secondary/Unknown UpToDate/DUnknown C
root@ubuntu-2:~# drbdadm primary all
root@ubuntu-2:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-2, 2010-10-12 10:45:58
m:res cs ro ds p mounted fstype
0:disk0 WFConnection Primary/Unknown UpToDate/DUnknown C
マウント。ubuntu-2 にもデータが同期されている。
root@ubuntu-2:~# mount -t ext3 /dev/drbd0 data/
root@ubuntu-2:~# cat data/hello.txt
hello
https://wiki.ubuntu.com/ClusterStack/LucidTesting#Test cases for cluster components in Ubuntu 10.04
[ 内容 ]
DRBDを使用し、2台のホスト間でデータミラーリングができるようにセットアップする。
DRDB +クラスタの組み合わせで使用するのが一般的で、DRDBのみだと、実用性があまりないが、DRDBを使用すると、どのようなことができるか確認する。
[ マシン ]
2台マシンを用意
ubuntu-1 , ubuntu-2 (Ubuntu 10.04.1 LTS , 2.6.32-25-generic-pae )
[ 手順 ]
・DRBDインストール前の準備
・DRBDをインストール
・DRBD用のパーティションの準備
・DRBDのコンフィグのセットアップ
・メタデータの作成
・DRBDを起動
・初期設定
・ファイルシステムの作成
・データがミラーリングされるかチェック
[ 設定例 ]
・DRBDインストール前の準備
・apt で DRBD をインストールできるように、sources.list に1行目を追加
root@ubuntu-1:~# cat /etc/apt/sources.list
deb http://jp.archive.ubuntu.com/ubuntu/ lucid main restricted universe
deb http://jp.archive.ubuntu.com/ubuntu/ lucid-updates main restricted universe
deb http://security.ubuntu.com/ubuntu lucid-security main restricted universe
deb http://ppa.launchpad.net/ubuntu-ha/lucid-cluster/ubuntu lucid main <-追加
エラーが。
root@ubuntu-1:~# apt-get update
W: GPG error: http://ppa.launchpad.net lucid Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 8F63FC3CB64F0AFA
http://www.rebelzero.com/fixes/apt-get-gpg-error-public-key-not-available/88
root@ubuntu-1:~# apt-key list
/etc/apt/trusted.gpg
--------------------
pub 1024D/437D05B5 2004-09-12
uid Ubuntu Archive Automatic Signing Key
sub 2048g/79164387 2004-09-12
pub 1024D/FBB75451 2004-12-30
uid Ubuntu CD Image Automatic Signing Key
公開鍵をインポート
3CB64F0AFAu-1:~# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8F63FC3CB64F0AFA
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv-keys 8F63FC3CB64F0AFA
gpg: requesting key B64F0AFA from hkp server keyserver.ubuntu.com
gpg: key B64F0AFA: public key "Launchpad ubuntu-ha" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
root@ubuntu-1:~#
root@ubuntu-1:~# apt-key list
/etc/apt/trusted.gpg
--------------------
pub 1024D/437D05B5 2004-09-12
uid Ubuntu Archive Automatic Signing Key
sub 2048g/79164387 2004-09-12
pub 1024D/FBB75451 2004-12-30
uid Ubuntu CD Image Automatic Signing Key
pub 1024R/B64F0AFA 2009-06-10
uid Launchpad ubuntu-ha
・DRBDをインストール
root@ubuntu-1:~# apt-get install linux-headers-server psmisc
root@ubuntu-1:~# apt-get install drbd8-utils
root@ubuntu-2:~# apt-get install linux-headers-server psmisc
root@ubuntu-2:~# apt-get install drbd8-utils
・DRBD用のパーティションの準備
メタデータ用とデータ用のパーティションは同じにする ( わけることも可能 )
ファイルシステムを作成する必要はない。
root@ubuntu-1:~# fdisk /dev/vda
メタデータ用 + データ用 : /dev/vda1
root@ubuntu-1:~# fdisk -l | grep vda
Disk /dev/vda: 314 MB, 314572800 bytes
/dev/vda1 1 609 306904+ 83 Linux
他方(ubuntu-2)も同じ。
root@ubuntu-2:~# fdisk -l | grep vda
Disk /dev/vda: 314 MB, 314572800 bytes
/dev/vda1 1 609 306904+ 83 Linux
・DRBDのコンフィグのセットアップ
コンフィグは /etc/drbd.conf , /etc/drbd.d/global_common.conf , /etc/drbd.d/*.res
*.res に DRBDで使用するコンフィグを記述する
両ホスト ( ubuntu-1 , ubuntu-2 ) ともに同じコンフィグ
ホスト名 ( on ubuntu-1 or ubuntu-2 ) は uname -n で表示されるホスト名を記述する。
root@ubuntu-1:~# cat /etc/drbd.d/disk0.res
resource disk0 {
protocol C;
net {
cram-hmac-alg sha1;
shared-secret "hello";
}
on ubuntu-1 {
device /dev/drbd0;
disk /dev/vda1;
address 192.168.122.136:7788;
meta-disk internal;
}
on ubuntu-2 {
device /dev/drbd0;
disk /dev/vda1;
address 192.168.122.254:7788;
meta-disk internal;
}
・メタデータの作成
両ホストで実行。disk0 は resource で設定した名前 ( resource disk0 ) を指定。
root@ubuntu-1:~# drbdadm create-md disk0
・DRBDを起動
root@ubuntu-1:~# /etc/init.d/drbd start
* Starting DRBD resources
[ d(disk0) [11746.763543] block drbd0: meta data flush failed with status -95, disabling md-flushes
n(disk0) ]..........
***************************************************************
DRBD's startup script waits for the peer node(s) to appear.
- In case this node was already a degraded cluster before the
reboot the timeout is 0 seconds. [degr-wfc-timeout]
- If the peer was available before the reboot the timeout will
expire after 0 seconds. [wfc-timeout]
(These values are for resource 'disk0'; 0 sec -> wait forever)
To abort waiting enter 'yes' [ 15]:yes
...done.
root@ubuntu-1:~#
ちなみにdrdbモジュールを使用(ロード)している。
root@ubuntu-1:~# lsmod | grep drbd
drbd 256663 3
ステータス確認 ( ubuntu-2 側の drdb を起動する前 )
root@ubuntu-1:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-1, 2010-10-12 10:44:31
m:res cs ro ds p mounted fstype
0:disk0 WFConnection Secondary/Unknown Inconsistent/DUnknown C
ubuntu-2 の drdb を起動
root@ubuntu-2:~# /etc/init.d/drbd start
ステータス確認
root@ubuntu-1:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-1, 2010-10-12 10:44:31
m:res cs ro ds p mounted fstype
0:disk0 Connected Secondary/Secondary Inconsistent/Inconsistent C
root@ubuntu-2:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-2, 2010-10-12 10:45:58
m:res cs ro ds p mounted fstype
0:disk0 Connected Secondary/Secondary Inconsistent/Inconsistent C
・初期設定
初回時、ローカルディスクの状態が Inconsistent になっているので、強制的に Primary にする。
root@ubuntu-1:~# drbdadm -- --overwrite-data-of-peer primary all
同期中
root@ubuntu-1:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-1, 2010-10-12 10:44:31
m:res cs ro ds p mounted fstype
0:disk0 SyncSource Primary/Secondary UpToDate/Inconsistent C
... sync'ed: 4.0% (298664/306856)K
root@ubuntu-1:~#
同期が完了すると、Primary/Secondary , ローカルディスクの状態が UpToData/UpToDate になる。
root@ubuntu-1:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-1, 2010-10-12 10:44:31
m:res cs ro ds p mounted fstype
0:disk0 Connected Primary/Secondary UpToDate/UpToDate C
root@ubuntu-2:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-2, 2010-10-12 10:45:58
m:res cs ro ds p mounted fstype
0:disk0 Connected Secondary/Primary UpToDate/UpToDate C
下記コマンドでも、どちらが Primary かの確認可能
root@ubuntu-1:~# drbdadm role all
Primary/Secondary
root@ubuntu-2:~# drbdadm role all
Secondary/Primary
・ファイルシステムの作成
プライマリで実行する
root@ubuntu-1:~# mkfs.ext3 /dev/drbd0
マウント
root@ubuntu-1:~# mount -t ext3 /dev/drbd0 data
root@ubuntu-1:~# df data/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/drbd0 297141 10287 271512 4% /root/data
・データがミラーリングされるかチェック
プライマリでファイルを作成
root@ubuntu-1:~# echo hello > data/hello.txt
root@ubuntu-1:~# cat data/hello.txt
hello
プライマリを停止
root@ubuntu-1:~# /etc/init.d/drbd stop
セカンダリをプライマリにする
root@ubuntu-2:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-2, 2010-10-12 10:45:58
m:res cs ro ds p mounted fstype
0:disk0 WFConnection Secondary/Unknown UpToDate/DUnknown C
root@ubuntu-2:~# drbdadm primary all
root@ubuntu-2:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@ubuntu-2, 2010-10-12 10:45:58
m:res cs ro ds p mounted fstype
0:disk0 WFConnection Primary/Unknown UpToDate/DUnknown C
マウント。ubuntu-2 にもデータが同期されている。
root@ubuntu-2:~# mount -t ext3 /dev/drbd0 data/
root@ubuntu-2:~# cat data/hello.txt
hello
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.