设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
Linux 基础讨论区(新手速成)
›
使用NBD实现异地磁盘空间共享
返回列表
查看:
1687
|
回复:
1
使用NBD实现异地磁盘空间共享
[复制链接]
米奇鼠
米奇鼠
当前离线
积分
119
IP卡
狗仔卡
发表于 2007-8-25 16:14:52
|
显示全部楼层
|
阅读模式
使用NBD实现异地磁盘空间共享
NBD(Network Block Device)
URL:
http://sourceforge.net/projects/nbd
简介:Tools for the Linux Kernel's network block device, allowing you to use remote block devices over a TCP/IP network,也就是说可以实现IP-SAN的功能数据共享。
具体的IP-SAN结构请参考SNIA培训文档 《snia_advanced_data_sharing_technologies》
http://www.snia.org/education/tu ... ed_Data_Sharing.pdf
我使用的两台测试节点(node1、node2)信息如下:
Linux OS版本: Fedora Core 4 2.6.11-1.1369_FC4 i386 完全安装,需要安装内核源代码。
node1 IP: 10.10.10.14/24
node2 IP: 10.10.10.227/24
使用百兆交换机联接两台测试节点。
注:以下操作均以root用户完成。
以下为node1节点操作。
确认FC4环境里已经编译好了nbd.ko模块
[root@localhost ~]# modprobe nbd
[root@localhost ~]# lsmod
Module Size Used by
nbd 29153 0
md5 4033 1
ipv6 268097 20
lp 13001 0
parport_pc 28933 1
parport 40585 2 lp,parport_pc
如果执行 modprobe nbd后,提示“FATAL: Module nbd not found.”说明NBD模板未被编译并安装到/lib/modules/2.6.11-1.1369_FC4/kernel/drivers/block目录。
请参考Linux内核编译文章 《Fedora Core 4 Kernel Compile Notes》
http://www.mjmwired.net/resources/mjm-kernel-fc4.html
执行make menuconfig后,把“Device Drivers ---> Block devices ---> Network block device support”设置为“M”。
下载kernel-2.6.11-1.1369_FC4.src.rpm,rpm格式的内核源代码包
[root@localhost ~]# cd ; mkdir kernel;cd kernel
[root@localhost ~]# wget
http://download.fedora.redhat.co ... -1.1369_FC4.src.rpm
当kernel-2.6.11-1.1369_FC4.src.rpm完成后,安装kernel-2.6.11-1.1369_FC4.src.rpm。
执行 rpm -ivh kernel-2.6.11-1.1369_FC4.src.rpm
生成kernel-2.6.spec文件。
cd /usr/src/redhat/SPECS/
在/usr/src/redhat/BUILD/kernel-2.6.11/目录产生内核源代码。
好了,接下来我们开始编译nbd工具的过程。
[root@localhost ~]# mkdir Drivers
[root@localhost ~]# cd Drivers/
下载nbd-2.9.6.tar.bz2
[root@localhost Drivers]# wget
http://downloads.sourceforge.net/nbd/nbd-2.9.6.tar.bz2?
modtime=1184845717&big_mirror=0
当下载完成后,解开tar包
[root@localhost Drivers]# tar jxvf nbd-2.9.6.tar.bz2
[root@localhost Drivers]# ls
nbd-2.9.6 nbd-2.9.6.tar.bz2
[root@localhost Drivers]# cd nbd-2.9.6
编译生成nbd-server、nbd-client,参考INSTALL文件。
[root@localhost nbd-2.9.6]# ./configure --includedir=/usr/src/linux-2.6.11/include
当提示
config.status: creating nbd-server.5
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
说明配置成功了。
执行make命令编译nbd工具,包括nbd-server、nbd-client
[root@localhost nbd-2.9.6]# make
make all-am
make[1]: Entering directory `/root/Drivers/nbd-2.9.6'
if gcc -DHAVE_CONFIG_H -I. -I. -I. -DSYSCONFDIR='"/usr/local/etc"' -g -O2 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -g -O2 -MT nbd_server-nbd-server.o -MD -MP -MF ".deps/nbd_server-nbd
-server.Tpo" -c -o nbd_server-nbd-server.o `test -f 'nbd-server.c' || echo './'`nbd-server.c; \
then mv -f ".deps/nbd_server-nbd-server.Tpo" ".deps/nbd_server-nbd-server.Po"; else rm -f
".deps/nbd_server-nbd-server.Tpo"; exit 1; fi
gcc -g -O2 -o nbd-server nbd_server-nbd-server.o -lglib-2.0
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT nbd-client.o -MD -MP -MF ".deps/nbd-client.Tpo"
-c -o nbd-client.o nbd-client.c; \
then mv -f ".deps/nbd-client.Tpo" ".deps/nbd-client.Po"; else rm -f ".deps/nbd-client.Tpo"; exit 1;
fi
gcc -g -O2 -o nbd-client nbd-client.o
make[1]: Leaving directory `/root/Drivers/nbd-2.9.6'
安装nbd-server、nbd-client到指定路径。
[root@localhost nbd-2.9.6]# make install
make[1]: Entering directory `/root/Drivers/nbd-2.9.6'
test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin"
/usr/bin/install -c 'nbd-server' '/usr/local/bin/nbd-server'
test -z "/usr/local/sbin" || mkdir -p -- "/usr/local/sbin"
/usr/bin/install -c 'nbd-client' '/usr/local/sbin/nbd-client'
test -z "/usr/local/share/man/man1" || mkdir -p -- "/usr/local/share/man/man1"
/usr/bin/install -c -m 644 './nbd-server.1' '/usr/local/share/man/man1/nbd-server.1'
test -z "/usr/local/share/man/man5" || mkdir -p -- "/usr/local/share/man/man5"
/usr/bin/install -c -m 644 './nbd-server.5' '/usr/local/share/man/man5/nbd-server.5'
test -z "/usr/local/share/man/man8" || mkdir -p -- "/usr/local/share/man/man8"
/usr/bin/install -c -m 644 './nbd-client.8' '/usr/local/share/man/man8/nbd-client.8'
make[1]: Leaving directory `/root/Drivers/nbd-2.9.6'
就这么简单我们的NBD工具就安装成功了。在别一台测试节点node2执行以上相同的步骤即可完成安装,现在我们开始实现IP-SAN磁盘空间的共享。
常用格式说明,参考nbd-server -h、nbd-client -h
nbd-server <port> <filename>
port: 每个联接需要一个端口,我们在指定port时需要先确认这个端口是否已被使用netstat -an
filename:可以是设备名(如 /dev/hda1) 、文件(如 /mnt/Linuxboot.iso)
nbd-client <hostname> <port> <nbd device>
hostname:指执行nbd-server端的IP
port:与nbd-server指定的port相同
nbd device:本地对应的nbd设备
使用nbd-client -d断开NBD联接
nbd-client -d nbd_device
使用nbd-client -d断开NBD联接
nbd-client -d nbd_device
准备工作:
1、确认两台测试节点网络是否互通。
node1
[root@localhost ~]# ping -c5 10.10.10.227
PING 10.10.10.227 (10.10.10.227) 56(84) bytes of data.
64 bytes from 10.10.10.227: icmp_seq=0 ttl=64 time=0.222 ms
64 bytes from 10.10.10.227: icmp_seq=1 ttl=64 time=0.207 ms
node2
[root@localhost ~]# ping -c5 10.10.10.14
PING 10.10.10.14 (10.10.10.14) 56(84) bytes of data.
64 bytes from 10.10.10.14: icmp_seq=0 ttl=64 time=0.206 ms
64 bytes from 10.10.10.14: icmp_seq=1 ttl=64 time=0.194 ms
2、使用lsmod查看确认nbd是否已加载
IP-SAN共享node1节点1G硬盘空间 /dev/sdb1
node1
建立nbd-server,端口为 345678
[root@localhost ~]# nbd-server 345678 /dev/sdb1
** (process:2801): WARNING **: Could not parse config file: Could not open config file.哪
node2
与node2建立NBD联接
[root@localhost ~]# nbd-client 10.10.10.14 345678 /dev/nbd9
Negotiation: ..size = 987966KB
bs=1024, sz=987966
说明NBD联接成功,对NBD设备进行格式化。
[root@localhost ~]# mkfs.ext3 /dev/nbd9
最后,我们就可以把NBD设备mount到本地当本地文件系统使用了。
mkdir /mnt/nbd9
mount /dev/nbd9 /mnt/nbd9
以下是使用df看到的结果
[root@localhost mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 19G 8.2G 9.4G 47% /
/dev/shm 252M 0 252M 0% /dev/shm
/dev/nbd9 950M 18M 885M 2% /mnt/nbd9
如果要断开nbd9这个NBD联接,执行如下:
[root@localhost ~]# cd;umount /mnt/nbd9/
[root@localhost ~]# nbd-client -d /dev/nbd9
Disconnecting: que, disconnect, sock, done
哈哈,就先写到这里。有兴趣的朋友可以安排时间阅读NBD的资料。
当然NBD不仅只用于做磁盘空间共享,在系统数据备份、NC(Network PC)、嵌入式Linux环境应用等。
相关信息
ENBD
http://www.it.uc3m.es/~ptb/nbd/
http://sourceforge.net/project/showfiles.php?group_id=13229
[color="Red"] BTW 第一次发帖,写得不好或有问题的地方请大家指出。3Q
Have a good one.
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
luoguan
luoguan
当前离线
积分
1
IP卡
狗仔卡
发表于 2008-7-8 04:21:17
|
显示全部楼层
NBD 与 iscsi 比,有什么优势、特点吗?
NBD 与 iscsi 比,有什么优势、特点吗?
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
开源软件专题讨论
SuSE Linux
BSD 讨论专题
Linux发行版 Turbolinux专题
Linux 程序设计专题讨论
shell进阶应用、shell编程
Ubuntu Linux 专题讨论
LFS(LinuxfromScratch)
Mandriva Linux
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表