2008-10-14
■ DRBD + Keepalived + iSCSI target を VMware ESXi から使うメモ
単なるメモです。
- ホストを 2台用意して DRBD でミラーリング
- iSCSI Enterprise Target で iSCSI target にする
- Keepalived VRRP で VIP を振って Master/Backup 構成で failover 可能に
- VMware ESXi からその iSCSI target 上に仮想マシンを構築
- failover しても仮想マシンが止まらない
仮想マシンで make などをして、IO がガリガリ起きている状態で failover (マスターになっているマシンの電源断とか) しても、仮想マシン側では IO が数秒待たされるだけで特にエラーなどは起きず。結構気持ちいいなこれ。
ただし、DRBD のプロトコルが A or C だと大丈夫だが、B だと仮想マシン側で IO error が大量発生。A だと信頼性が不安だし、C だと速度でなさそうだし、というのがちょっと悩みどころかも。
# DRBD のホスト自体を仮想マシンで構築したので、速度は計測していない。
以下インストールと設定のメモ。
ちなみに DRBD + Keepalived の部分はおなじみの
ほとんどそのままです。
- VIP: 192.168.0.40
- drbd1: 192.168.0.41
- drbd2: 192.168.0.42
# yum install drbd82 kmod-drbd82 # tar zxvf keepalived-1.1.15.tar.gz # cd keepalived-1.1.15 # ./configure # make # make rpm # rpm ができる # rpm -Uvh keepalived-1.1.15-5.i386.rpm # rpm -Uvh daemontools-toaster-0.76-1.3.3.i386.rpm
/etc/drbd.conf
common { syncer { rate 100M; } }
resource r1 {
protocol C;
on drbd1 {
device /dev/drbd1;
disk /dev/sdc;
address 192.168.0.41:7790;
meta-disk internal;
}
on drbd2 {
device /dev/drbd1;
disk /dev/sdc;
address 192.168.0.42:7790;
meta-disk internal;
}
}
# modprobe drbd # drbdadm create-md all # メタディスク作成 (両方で) # drbdadm up all # 起動 (両方で) # drbdadm -- --overwrite-data-of-peer primary all # 最初に primary -> secondary の同期を取る (ホストdrbd1のみ) # cat /proc/drbd # 状態を見る
iSCSI Enterprise Target のインストール。
# yum install kernel-devel # tar zxvf iscsitarget-0.4.16.tar.gz # cd iscsitarget-0.4.16 # make # make install
/etc/ietd.conf
Target iqn.2008-10.com.topicmaker.internal.drbdtest Lun 1 Path=/dev/drbd1,Type=fileio Alias drbd-test
Keepalived VRRP の設定。
/etc/keepalived/keepalived.conf
vrrp_instance DRDB {
state BACKUP
interface eth0
garp_master_delay 5
virtual_router_id 200
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass XXXX
}
virtual_ipaddress {
192.168.0.40/24 dev eth0
}
notify_master "/usr/local/sbin/drbd-master"
notify_backup "/usr/local/sbin/drbd-backup"
notify_fault "/usr/local/sbin/drbd-backup"
}
マスターになったときに行う処理 /usr/local/sbin/drbd-master
#!/bin/sh drbdadm primary all service iscsi-target start
バックアップになったときに行う処理 /usr/local/sbin/drbd-backup
#!/bin/sh service iscsi-target stop drbdadm secondary all
daemontools から keepalived を起動するためのスクリプト /etc/daemon/keepalived/run
#!/bin/sh [ -f /var/run/vrrp.pid ] && exit exec 2>&1 trap 'kill -TERM $PID' TERM trap 'kill -HUP $PID' HUP trap 'kill -INT $PID' INT keepalived -n -S 1 --vrrp & PID=$! wait $PID /usr/local/sbin/drbd-backup
/etc/inittab に以下を追加
# daemontools SV:123456:respawn:/usr/bin/svscanboot
トラックバック - http://d.hatena.ne.jp/sfujiwara/20081014/1223980412
リンク元
- 66 http://labs.topicmaker.com/~fujiwara/s.html
- 27 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP205JP205&q=USBメモリ+インストール
- 24 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=cj8&q=supertalent ベンチマーク&btnG=検索&lr=
- 23 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=HP+ML115+VMware+ESXi&num=50
- 21 http://www.google.co.jp/search?q=vmware+esxi&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP-mac:official&client=firefox-a
- 13 http://www.akiyan.com/dkiroku/9574653
- 13 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=L0f&q=vmware+esxi+インストール&revid=2005663450&sa=X&oi=revisions_inline&resnum=0&ct=top-revision&cd=1
- 13 http://www.google.co.jp/search?sourceid=navclient&aq=t&hl=ja&ie=UTF-8&rlz=1T4GZEZ_jaJP228JP228&q=esxi+インストール
- 12 http://b.hatena.ne.jp/entrylist?sort=hot
- 10 http://www.google.co.jp/search?hl=ja&q=esxi&lr=lang_ja
![[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ) [24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)](http://ecx.images-amazon.com/images/I/51uK4ACymiL._SL160_.jpg)
