Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7112353
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类:

2012-11-13 19:58:34

原文地址:ubuntu 8.04下配置drbd 作者:zupie

安装LVM

如果有一块设备,使用LVM创建一个逻辑卷,让DRBD同步此逻辑卷,也可以直接使用块设备。建议使用逻辑卷。

1)    安装LVM

apt-get install lvm2

2)    加载模块

手动加载模块

modprobe dm_mod
modprobe dm_mirror
modprobe dm_snapshot

启动时自动加载模块

>> /etc/modules <

dm_mod
dm_mirror

dm_snapshot

EOF

  创建逻辑卷

1)    创建物理卷

pvcreate /dev/sda3

#Physical volume "/dev/sda3" successfully created

2)    创建卷组

vgcreate tangdisk /dev/sda3

#Volume group "tangdisk" successfully created

3)    激活卷组

-a y tangdisk

#0 logical volume(s) in volume group "tangdisk" now active

4)    创建逻辑卷

lvcreate -L4048 -ndrbd tangdisk

#Logical volume "drbd" created

/dev/sda3     为一个空闲的块设备

  部署LVM验证

lvdisplay /dev/tangdisk/drbd

如果有类似以下信息表示LVM逻辑卷创建成功

  --- Logical volume ---

  LV Name                /dev/sharedisk/drbd

  VG Name                sharedisk

  LV UUID                ri123H-o7lx-CiK2-0fqR-qDm2-4vrI-3rxSql

  LV Write Access        read/write

  LV Status              available

  # open                 2

  LV Size                2.00 GB

  Current LE             512

  Segments               1

  Allocation             inherit

  Read ahead sectors     0

  Block device           254:0

 安装DRBD

apt-get install drbd0.7-module-source drbd8-utils

   配置DRBD

1)    配置drbd.conf

cat > /etc/drbd.conf <

       global { usage-count no; }

       common { syncer { rate 10M; } }

       resource r0 {

            protocol C;

            startup {

                 wfc-timeout 600;

                 degr-wfc-timeout 120;

            }

            disk {

                 on-io-error   detach;

            }

            net {

                 timeout 30;

                 connect-int 4;

                 ping-int 4;

                 max-buffers 2048;

                 max-epoch-size 2048;

                 ko-count 0;

                 #on-disconnect reconnect;

                 cram-hmac-alg sha1;

                 shared-secret "FooFunFactory";

                 after-sb-0pri discard-zero-changes;

                 after-sb-1pri discard-secondary;

                 after-sb-2pri disconnect;

           }

           syncer {

                 rate 10M;

           }

            on server1 {

                 device    /dev/drbd0;

                 disk      /dev/sharedisk/drbd;

                 address   1.1.1.30:7898;

                 meta-disk  internal;

            }

            on server2 {

                 device    /dev/drbd0;

                 disk      /dev/sharedisk/drbd;

                 address   1.1.1.31:7898;

                 meta-disk  internal;

            }

       }

EOF

on server1  此参数是配置DRBD同步的主机名,此处主机名要和系统的主机名一致。DRBD一般都是有2台服务器形成HA环境,因此需要配置两个“on 主机名”配置段。

device    /dev/drbd0; 定义伪块设备的名称,本手册使用/dev/drbd0,伪块的主要作用是和真实块做映射,文件系统的读写和mount都是对伪块来操作的,drbd不允许用户直接对真实块的任何操作。

disk /dev/tangdisk/drbd   定义真实块设备的名称,对伪块设备的操作将自动映射到此块设备上。

address 1.1.1.30:7898; DRBD同步主机的IP地址和端口号,因为有2台服务器,因此需要在每个“on 主机名”配置段内添加其主机对应的IP地址和端口号,端口号不需要修改,使用默认7898

此配置文件(drbd.conf)在2台服务器上都是一样的。

 

2)    drbd.conf 文件说明

       global { usage-count no; }

       #向drbd组织发送使用统计信息

common { syncer { rate 10M; } }

       #同步速度,单位byte     

resource r0 {

       #drbd资源

            protocol C;

# A 数据一旦写入磁盘并发送到网络中就认为完成了写入操作。

# B 收到接收确认就认为完成了写入操作。

      # C 收到写入确认就认为完成了写入操作        

  startup {

                 wfc-timeout 600;

      #连接超时,当启动drbd或者运行drbd时,会等待对端的drbd发送响应               

  120;

                 #连接超时,当drbd当机或者重启时,等待的时间

            }

            disk {

                 on-io-error   detach;

                 #当磁盘发现io错误时执行的动作,本手册为卸载磁盘和drbd的链接。

            }

            net {

                 30; 

#如果3秒里没有响应,则认为dead。必须小于connect-int and ping-int

                 connect-int 4; 

# 连接到远程的drbd设备所需要的时间,10s

                 ping-int 4; 

  如果一对drbdidle的时间超过10sdrbd将检查对方是否还活着

                 max-buffers 2048; 

#drbd分配的最大请求数,单位是pagesize.

                 max-epoch-size 2048;

#最大写数据快

                 ko-count 0;

#如果此节点在count * timeout的时间内没能完成写任务,

#将被揣出该cluster.默认为0,禁止该属性

                 #on-disconnect reconnect;

                 sha1;

                 shared-secret "FooFunFactory";

                 #主备之间通信使用的加密算法

                 after-sb-0pri discard-zero-changes;

                 after-sb-1pri discard-secondary;

                 after-sb-2pri disconnect;

                 #自动修复脑裂的配置

           }

           syncer {

                 rate 10M;

           }

            on testC12035 {

            #主机名

                 device    /dev/drbd0;

                 #伪块设备的名称,文件系统和mount时都是使用此块设备            

disk      /dev/sharedisk/drbd;

                 #真实的块设备,数据的读写均在此块设备上。               

address   1.1.1.30:7898;

                 #主机的IP地址                

meta-disk  internal;

                 #drbd使用的meta数据存放的地点,internal为存放在上面disk配置的块
#设备内

            }

            on testC12068 {

                 device    /dev/drbd0;

                 disk      /dev/sharedisk/drbd;

                 address   1.1.1.31:7898;

                 meta-disk  internal;

            }

       }

3)    初始化meta data storage

create-md r0

当逻辑卷或者块设备中已经有数据时会出现以下提示

v08 Magic number not found

v07 Magic number not found

v07 Magic number not found

v08 Magic number not found

Writing meta data...

initialising activity log

NOT initialized bitmap

New drbd meta data block sucessfully created

如果drbd.conf配置文件中global { usage-count yes; } 的话,回显的提示信息会不一样,因为需要连接互联网,报告drbd的使用情况:

 --==  Thank you for participating in the global usage survey  ==--

The server's response is:

In the future drbdadm will only contact usage.drbd.org when you update

DRBD or when you use 'drbdadm create-md'. Of course it will continue

to ask you for confirmation as long as 'usage-count' is at its default

value of 'ask'.

Just press [enter] to continue:

v08 Magic number not found

md_offset 2147479552

al_offset 2147446784

bm_offset 2147381248

Found some data

 ==> This might destroy existing data! <==

Do you want to proceed?

[need to type 'yes' to confirm]

输入yes               ß输入yes时清除逻辑卷或块设备中的数据

v07 Magic number not found

v07 Magic number not found

v08 Magic number not found

Writing meta data...

initialising activity log

NOT initialized bitmap

New drbd meta data block sucessfully created.

4)    启动drbd

此命令需要在两台机上连续执行。当在启动中一台机器上执行此命令后,此台机器会发出心跳找寻另一台drbd服务器,直到600秒超时过后才启动。

/etc/init.d/drbd start

5)    提升到primary状态

配置其中一台机器为primary状态(只能有一台机器的状态为primary),只能在一台机器上执行此命令。只有在primary状态的服务器才能向磁盘写入数据。才能被mount到当前系统。

drbdsetup /dev/drbd0 primary -o

如果无法提升为primary状态,检查两台机器之间是否能互通,是否逻辑卷或块设备数据不一致。如果出现Diskless/Inconsistent,表是两台机器的数据不一致,关停drbd再重新执行初始化meta data storage命令(drbdadm create-md r0)。

执行cat /proc/drbd命令会出现类似下面的输出信息,在红字的位置如果出现Primary的话,表示当前主机的状态为Primary。如果为Secondary,就表示当前状态为secondary,下面的输出的详细解释3.2.3.8节:部署验证

version: 8.0.11 (api:86/proto:86)

GIT-hash: b3fe2bdfd3b9f7c2f923186883eb9e2a0d3a5b1b build by phil@mescal, 2008-02-12 11:56:43

 0: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r---

    ns:4194140 nr:0 dw:0 dr:4194140 al:0 bm:256 lo:0 pe:0 ua:0 ap:0

        resync: used:0/31 hits:261878 misses:256 starving:0 dirty:0 changed:256

        act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0

 格式化drbd虚拟块设备

此命令只能在primary状态的主机上执行。在Secondary状态主机上不需要执行

/dev/drbd0

 挂在drbd设备

在Primary状态的主机上执行:

mkdir -p /data/drbd/

mount /dev/drbd0 /data/drbd/

在Secondary状态的主机上执行:

mkdir -p /data/drbd/

开机激活LVM磁盘

在primary和secondary的主机上,

在/etc/init.d/drbd 脚本的第二行后面添加如下的配置,然后保存

#action LVM blck

/sbin/vgchange -a y

/* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman","serif";}
阅读(560) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~