LoginSignup
1
1

More than 5 years have passed since last update.

CentOS6.7上でのDRBD構築メモ

Last updated at Posted at 2016-01-04

環境

CentOS6.5
vm1: 192.168.50
vm2: 192.168.52
* 検証環境のためNICは一本

drbdのインストール

こちらでお好きなrpmを選択
http://ftp.kddilabs.jp/Linux/RPMS/elrepo/elrepo/el6/x86_64/RPMS/
今回は
drbd84-utils-8.9.2-1.el6.elrepo.x86_64.rpm
kmod-drbd84-8.4.6-1.el6.elrepo.x86_64.rpm
を選択

cd /tmp
wget http://ftp.kddilabs.jp/Linux/RPMS/elrepo/elrepo/el6/x86_64/RPMS/drbd84-utils-8.9.2-1.el6.elrepo.x86_64.rpm
wget http://ftp.kddilabs.jp/Linux/RPMS/elrepo/elrepo/el6/x86_64/RPMS/kmod-drbd84-8.4.6-1.el6.elrepo.x86_64.rpm 
rpm -ivh *drbd*.rpm

hosts

#cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.50 vm1
192.168.1.52 vm2

その他事前準備

iptables,selinuxの無効化

service iptables stop
chkconfig iptables off
cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

設定を反省させるために再起動

設定ファイルの編集

global_common.conf

# cat /etc/drbd.d/global_common.conf
global {
        usage-count no;
}

common {
        handlers {

        }

        startup {
        }

        options {
        }

        disk {
                resync-rate 50M;
        }

        net {
                protocol C;
                csums-alg sha1;
                verify-alg sha1;
        }
}

r0.res

#cat /etc/drbd.d/r0.res
resource r0 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/sdb1;

        on vm1 {
                address 192.168.1.50:7788;
        }
        on vm2 {
                address 192.168.1.52:7788;
        }
}

仮想ディスクの追加

今回はESXi上でvm1/vm2に対して、新規仮想ディスクを追加

ディスクの認識(vmを再起動しない場合)

for i in $(find /sys/class/scsi_host -name 'scan') $(find /sys/devices -name 'scan') ;do echo "- - -" > $i ; done

認識されていることを確認

fdisk -l /dev/sdb
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

partitionの作成

fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xef042cab.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 
Using default value 2610

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xef042cab

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

meta dataの作成

drbdadm create-md r0
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.

serviceの起動

chkconfig drbd on
service drbd start
Starting DRBD resources: [
     create res: r0 r1
   prepare disk: r0 r1
    adjust disk: r0 r1
     adjust net: r0 r1
]
WARN: nothing stacked for this host (xxx), nothing to do in stacked mode!
  • WARNは無視してOKです

primaryの昇格(primary側でのみ実行)

#drbdadm -- --overwrite-data-of-peer primary r0

同期が始まることを確認
#cat /proc/drbd
version: 8.4.6 (api:1/proto:86-101)
GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by phil@Build64R6, 2015-04-09 14:35:00
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
    ns:11597 nr:0 dw:10573 dr:5343023 al:7 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:11402368
        [=====>..............] sync'ed: 32.0% (11132/16360)M
        finish: 0:05:12 speed: 36,444 (38,504) K/sec

フォーマット

#mkfs.xfs /dev/drbd0
mkfs.xfs: /dev/drbd0 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
# mkfs.xfs -f /dev/drbd0
meta-data=/dev/drbd0             isize=256    agcount=4, agsize=1310258 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=5241029, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

動作確認

# mount /dev/drbd0 /mnt
# echo "test" > /mnt/test.txt
# cat /mnt/test.txt
test
# umount /dev/drbd0

操作一覧

Primary => secondary 降格

/dev/drbd0をマウントしている場合は、アンマウントする必要があります。
#drbdadm secondary r0

Secondary -> Primary 昇格

drbdadm primary r0
mount /dev/drbd0 /mnt
元secondary側でmountできることを確認する

あとはheartbeatと連携させる

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1