基于LVM和NBD实现网络远程LVM镜像方法

服务器:Ubuntu 11.04 IP:192.168.150.132
客户机:Ubuntu 11.04 IP:192.168.150.133

实验过程:服务器有一块物理盘sdb1,客户机有三块物理盘sdb5,sdb6,sdb7。镜像必须要有三块物理盘。sdb5和sdb1作为数据和副本,sdb6记录日志。

本次实验将sdb1、sdb5、sdb6作为一个vg0,然后再vg0上建立镜像。其中sdb5和sdb1为数据和副本,sdb6为日志。

为了证明可靠性,将sdb5破坏。然后用sdb7代替sdb5恢复镜像。

1.安装NBD

http://sourceforge.net/projects/nbd 下载nbd-3.0.tar.bz2

解压并编译安装:

tar  jxf  nbd-3.0.tar.bz2
cd  nbd-3.0.tar.bz2
./configure
make
make  install

如果出现错误按照错误提示安装相应的包:

apt-get install libglib2.0-dev

然后重新./configure -> make->make install

2. 服务器端配置

nbd-server  1234  /dev/sdb1

#将服务器端点的sdb1这个物理盘通过1234端口共享。

3.客户端配置

nbd-client  192.168.150.132  1234  /dev/nbd0

#通过设置服务器的IP将服务器的sdb1连接到本地的nbd0。这时客户机nbd0就相当于服务器的sdb1

pvcreate  /dev/nbd0  /dev/sdb{5,6,7}

#创建4个lv

vgcreate vg0 /dev/nbd0  /dev/sdb5  /dev/sdb6

#将nbd0、sdb5、sdb6建成一个vg0

lvcreate –L 1G -m1 -n mirror vg0 /dev/nbd0 /dev/sdb5 /dev/sdb6

#创建大小为1G名称为mirror的镜像。这个镜像包括三部分:nbd0和sdb5为副本和数据,#sdb6为日志。注意nbd0在服务器上,sdb5和sdb6在本地。

mkfs.ext3 /dev/vg0/mirror
mkdir /mirror
mount /dev/vg0/mirror /mirror
cd /mirror

#格式化镜像盘并挂载

这时就可以操作这个镜像了。可以在mirror上建立一个文件:

vim abc

#然后退出保存。这时abc这个文件分别在nbd0(其实就是服务器的sdb1)、sdb5上保存一份。

4.破坏sdb5这个盘,然后用sdb7来恢复

dd if=/dev/zero of=/dev/sdb5 count=10 

#sdb5这时已经被破坏掉了。

lvs -a -o +devices 

#系统显示无法找到sdb5这个盘。

vgreduce   –removemissing –force vg0 

#移除sdb5

vgextend vg0 /dev/sdb7 

#将sdb7加入到vg0中

lvconvert -m1 /dev/vg0/mirror /dev/nbd0 /dev/sdb7 /dev/sdb6 

#用sdb7替代sdb5恢复镜像。这时nbd0和sdb7为副本和数据,sdb6为日志。

ll /mirror 

#查看到abc这个文件仍然存在

点赞 (0)
  1. 祝北平说道:

    我 鉴定过 了 这个 博客是 一个 专业性的博客

回复 祝北平 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code