目次

はじめに

概要

DRBDで管理するリソースの定義を行う。

リソースの定義

以下の構成を前提として手順を記載する。

  • 構成
    • デバイス
      同期デバイス/dev/drbd0
      メタデータ同一パーティション内に保管
    • ノード1
      ホスト名dev-drbd01
      同期用IPアドレス192.168.1.101
      同期パーティション/dev/sdb1
    • ノード2
      ホスト名dev-drbd02
      同期用IPアドレス192.168.1.102
      同期パーティション/dev/sdb1
  • r0.res
    resource r0 {
        meta-disk internal;
        device /dev/drbd0;
        disk /dev/sdb1;
        on dev-drbd01 {
            address 192.168.1.101:7788;
        }
        on dev-drbd02 {
            address 192.168.1.102:7788;
        }
    }

手順

パーティションの作成

  • dev-drbd01
    • /dev/sdb1の作成
      # fdisk /dev/sdb
       <操作は省略> 
    • ヘッダの上書き
      # dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
    • メタデータの作成
      # drbdadm create-md r0
      
      You want me to create a v08 style flexible-size internal meta data block.
      There appears to be a v08 flexible-size internal meta data block
      already in place on /dev/sdb1 at byte offset 53686038528
      
      Do you really want to overwrite the existing meta-data?
      [need to type 'yes' to confirm] yes
      
      initializing activity log
      NOT initializing bitmap
      Writing meta data...
      New drbd meta data block successfully created.
  • dev-drbd02
    • /dev/sdb1の作成
      # fdisk /dev/sdb
       <操作は省略> 
    • ヘッダの上書き
      # dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
    • メタデータの作成
      # drbdadm create-md r0
      
      You want me to create a v08 style flexible-size internal meta data block.
      There appears to be a v08 flexible-size internal meta data block
      already in place on /dev/sdb1 at byte offset 53686038528
      
      Do you really want to overwrite the existing meta-data?
      [need to type 'yes' to confirm] yes
      
      initializing activity log
      NOT initializing bitmap
      Writing meta data...
      New drbd meta data block successfully created.

DRBD起動

  • dev-drbd01(Primary)
    • DRBDの起動
      # systemctl start drbd
      # cat /proc/drbd 
      version: 8.4.9-1 (api:1/proto:86-101)
      GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
      0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
         ns:0 nr:0 dw:0 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:52426140
  • dev-drbd02(Secondary)
    • DRBDの起動
      # systemctl start drbd
      # cat /proc/drbd
      version: 8.4.9-1 (api:1/proto:86-101)
      GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
      0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
         ns:0 nr:0 dw:0 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:52426140

同期

Primary / Secondaryにおいてそれぞれメタデータを作成し、Secondary側で「drbdadm invalidate」を実行することでPrimaryのメタデータによる上書きを行う。

  • dev-drbd02(Secondary)
    • 同期の実行
      # drbdadm invalidate r0
    • 同期状況の確認
      # cat /proc/drbd
      version: 8.4.9-1 (api:1/proto:86-101)
      GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
      0: cs:SyncTarget ro:Secondary/Secondary ds:Inconsistent/UpToDate C r-----
         ns:0 nr:0 dw:0 dr:5570468 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:46855672
             [=>..................] sync'ed: 10.7% (45756/51196)M
             finish: 0:44:19 speed: 17,600 (15,960) want: 16,560 K/sec
    • 同期の完了
      # cat /proc/drbd
      version: 8.4.9-1 (api:1/proto:86-101)
      GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
      0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
         ns:0 nr:0 dw:0 dr:52426140 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

ファイルシステムの作成

ディスクへの書き込みはPrimary側からのみ可能なため、ファイルシステムの作成はPrimary側ノードから行う。
パーティションのマウントもPrimary側からのみ可能。

  • dev-drbd01(Primary)
    • Primaryへの切り替え
      # drbdadm primary r0
      
      # cat /proc/drbd 
      version: 8.4.9-1 (api:1/proto:86-101)
      GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7,  2016-12-04 01:08:48
      0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
         ns:0 nr:0 dw:0 dr:52427052 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
      
    • ファイルシステムの作成
      # mkfs.xfs /dev/drbd0
      meta-data=/dev/drbd0             isize=512    agcount=4, agsize=3276634 blks
               =                       sectsz=512   attr=2, projid32bit=1
               =                       crc=1        finobt=0, sparse=0
      data     =                       bsize=4096   blocks=13106535, imaxpct=25
               =                       sunit=0      swidth=0 blks
      naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
      log      =internal log           bsize=4096   blocks=6399, version=2
               =                       sectsz=512   sunit=0 blks, lazy-count=1
      realtime =none                   extsz=4096   blocks=0, rtextents=0
      
    • パーティションのマウント
      # mount /dev/drbd0 /mnt
      
      # df -h
      ファイルシス            サイズ  使用  残り 使用% マウント位置
      /dev/mapper/centos-root    46G  2.7G   43G    6% /
      devtmpfs                  2.0G     0  2.0G    0% /dev
      tmpfs                     2.0G     0  2.0G    0% /dev/shm
      tmpfs                     2.0G  8.6M  2.0G    1% /run
      tmpfs                     2.0G     0  2.0G    0% /sys/fs/cgroup
      /dev/sda1                 497M  163M  335M   33% /boot
      tmpfs                     396M     0  396M    0% /run/user/1000
      /dev/drbd0                 50G   33M   50G    1% /mnt

状態確認

DRBDの状態は/proc/drbdを参照する。

  • dev-drbd01(Primary)
    • 動作状況の確認
      # cat /proc/drbd 
      
      version: 8.4.9-1 (api:1/proto:86-101)
      GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
       0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
          ns:7916 nr:801195 dw:810353 dr:50993 al:18 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
  • dev-drbd02(Secondary)
    • 動作状況の確認
      # cat /proc/drbd 
      
      version: 8.4.9-1 (api:1/proto:86-101)
      GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
       0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
          ns:0 nr:8254 dw:8254 dr:8244 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

動作確認

両系のノードから書き込みを行い、同期していることを確認する。

  • dev-drbd01
    → 必要な場合のみ実行
    # drbdadm primary r0
    # mount /dev/drbd0 /mnt
    
    # echo "node01" >> /mnt/test.txt
    # cat /mnt/test.txt
    node01
    
    # umount /mnt
    # drbdadm secondary r0
  • dev-drbd02
    # drbdadm primary r0
    # mount /dev/drbd0 /mnt
    # echo "node02" >> /mnt/test.txt
    # cat /mnt/test.txt
    node01
    node02
    
    # umount /data/                                                            
    # drbdadm secondary r0
  • dev-drbd01
    # drbdadm primary r0
    # mount /dev/drbd0 /mnt
    
    # echo "node01" >> /mnt/test.txt
    # cat /mnt/test.txt
    node01
    node02

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-03 (月) 09:29:45 (170d)