Chinaunix首页 | 论坛 | 博客
  • 博客访问: 279968
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 642
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-16 15:11
文章分类

全部博文(56)

文章存档

2017年(6)

2015年(3)

2014年(41)

2013年(6)

我的朋友

分类: LINUX

2014-01-02 18:10:03

1. 首先服务器端的配置方法如下:
    $ cd /var/tmp
    $ dd if=/dev/zero of=nbd-disk0 bs=104857600 count=3

以上的目的是建立一个磁盘映像文件,作为提供给客户端使用的块设备。我们制作一个300M大小的文件当作块设备。
          
    $ nbd-server 1234 /var/tmp/nbd-disk0  //启动nbd-server,监听1234端口,使用nbd-disk0映像文件。

    $ ps -ef | grep nbd    //查看nbd进程。
root     11292     1  0 15:02 ?        00:00:00 nbd-server 1234 /var/tmp/nbd-disk0

nbd的使用后面的参数分别是:
nbd-server port file [size][kKmM] [-l authorize_file] [-r] [-m] [-c] [-a timeout_sec]
        port                    nbd-server监听端口.
        file                    绑定的映像文件.
        size                    在客户端所见的块设备大小(单位可以是: k,K,m,M).
    -r|--read-only        只读模式,客户端无法在块设备上进行写操作.
    -m|--multi-file        多个文件,可以将多个映像文件作为一个块设备提供给客户端.
    -c|--copy-on-write         所有客户端的写操作被会另存为一个文件,连接断开后,这个文件会被删除.
                                       可以保证映像文件内容不会被修改.
    -l|--authorize-file file  一个允许访问此nbd的主机列表文件.
    -a|--idle-time        服务器断开与客户端连接前的最大空闲时间.



2. 客户端的配置:
    客户端需加载nbd模块:
    modprobe nbd
    lsmod | grep nbd
nbd                    17427  3

查看nbd设备是否建立:
$ ls /dev/nbd* -hl
brw-rw---- 1 root disk 43,   0 12月  4 18:12 /dev/nbd0
brw-rw---- 1 root disk 43,  16 12月  4 18:55 /dev/nbd1
brw-rw---- 1 root disk 43, 160 12月  4 17:49 /dev/nbd10
brw-rw---- 1 root disk 43, 176 12月  4 17:49 /dev/nbd11
brw-rw---- 1 root disk 43, 192 12月  4 17:49 /dev/nbd12
brw-rw---- 1 root disk 43, 208 12月  4 17:49 /dev/nbd13
brw-rw---- 1 root disk 43, 224 12月  4 17:49 /dev/nbd14
brw-rw---- 1 root disk 43, 240 12月  4 17:49 /dev/nbd15
brw-rw---- 1 root disk 43,  32 12月  4 18:46 /dev/nbd2
brw-rw---- 1 root disk 43,  48 12月  4 17:49 /dev/nbd3
brw-rw---- 1 root disk 43,  64 12月  4 17:49 /dev/nbd4
brw-rw---- 1 root disk 43,  80 12月  4 17:49 /dev/nbd5
brw-rw---- 1 root disk 43,  96 12月  4 17:49 /dev/nbd6
brw-rw---- 1 root disk 43, 112 12月  4 17:49 /dev/nbd7
brw-rw---- 1 root disk 43, 128 12月  4 17:49 /dev/nbd8
brw-rw---- 1 root disk 43, 144 12月  4 17:49 /dev/nbd9


将/dev/nbd0设备与主机连接:
$ sudo nbd-client localhost 1234 /dev/nbd0

Negotiation: ..size = 300MB
bs=1024, sz=314572800 bytes

nbd-client用法:
nbd-client [bs=blocksize] host port nbd_device [-swap]
    bs             用于设置块大小,默认是1024,可以是512,1024.2048,4096
    host           服务器的主机名或IP
    port           服务器的监听端口
    nbd_device     映射到本地的哪个nbd设备(如: /dev/nbd0)
    -swap          指定nbd设备将用做swap空间
nbd-client -d nbd_device  用于断开连接


ps -ef | grep nbd   //连接建立之后,可以看到nbd-client的进程如下:
root      5243     1  0 18:44 ?        00:00:00 nbd-client localhost 1234 /dev/nbd0

在使用这个设备之前,需要格式化这个设备:
$ sudo mkfs.ext3 /dev/nbd0
mke2fs 1.42 (29-Nov-2011)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
76912 inodes, 307200 blocks
15360 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=67633152
38 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks:
    8193, 24577, 40961, 57345, 73729, 204801, 221185

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
    
    在客户端本地挂载这个设备:
    mkdir /mnt/nbd0
     mount /dev/nbd0 /mnt/nbd0
    cd /mnt/nbd0
    ls
    lost+found
复制/root目录下的东东到这里来:
    cp /root . -rf
    ls
    lost+found root

卸载这个块设备,
    $ umount /mnt/nbd0

    $ nbd-client -d /dev/nbd0   断开连接

3.服务器端提供多个映像文件到客户端
(1)服务器端的配置:
$ dd if=/dev/zero of=nbd-disk1 bs=104857600 count=3
记录了3+0 的读入
记录了3+0 的写出
314572800字节(315 MB)已复制,3.48269 秒,90.3 MB/秒
$ dd if=/dev/zero of=nbd-disk2 bs=104857600 count=3
记录了3+0 的读入
记录了3+0 的写出
314572800字节(315 MB)已复制,3.81813 秒,82.4 MB/秒

$ nbd-server 1234 /var/tmp/nbd-disk0
$ nbd-server 1235 /var/tmp/nbd-disk1 sushan@sushan-G31M-ES2C:/var/tmp$ nbd-server 1236 /var/tmp/nbd-disk2

在服务器端查看:    
    ps -ef | grep nbd
root      5217     1  0 18:43 ?        00:00:00 nbd-server 1234 /var/tmp/nbd-disk0
root      5220     1  0 18:43 ?        00:00:00 nbd-server 1235 /var/tmp/nbd-disk1
root      5223     1  0 18:43 ?        00:00:00 nbd-server 1236 /var/tmp/nbd-disk2
(2)客户端的配置:
$ lsmod  | grep nbd
nbd                    17427  3

$ ls /dev/nbd*
/dev/nbd0  /dev/nbd10  /dev/nbd12  /dev/nbd14  /dev/nbd2  /dev/nbd4  /dev/nbd6  /dev/nbd8
/dev/nbd1  /dev/nbd11  /dev/nbd13  /dev/nbd15  /dev/nbd3  /dev/nbd5  /dev/nbd7  /dev/nbd9


$ sudo nbd-client localhost 1234 /dev/nbd0
[sudo] password for sushan:
Negotiation: ..size = 300MB
bs=1024, sz=314572800 bytes
$ sudo nbd-client localhost 1235 /dev/nbd1
Negotiation: ..size = 300MB
bs=1024, sz=314572800 bytes
$ sudo nbd-client localhost 1236 /dev/nbd2
Negotiation: ..size = 300MB
bs=1024, sz=314572800 bytes


将nbd1格式化为vfat的格式:
$ sudo mkfs.vfat /dev/nbd1
mkfs.vfat 3.0.12 (29 Oct 2011)
unable to get drive geometry, using default 255/63

将nbd2格式化为ext2的格式:
sudo mkfs.ext2 /dev/nbd2

挂在这三个设备:
mkdir nbd1  nbd2
$ sudo mount /dev/nbd0 nbd0
$ sudo mount /dev/nbd1 nbd1
$ sudo mount /dev/nbd2 nbd2

$ df -h
文件系统        容量  已用  可用 已用% 挂载点
        ...
/dev/nbd0       291M  263M   14M   96% /mnt/nbd0
/dev/nbd2       291M  2.1M  274M    1% /mnt/nbd2
/dev/nbd1       300M     0  300M    0% /mnt/nbd1


$ mount
        ...
/dev/nbd0 on /mnt/nbd0 type ext3 (rw)
/dev/nbd2 on /mnt/nbd2 type ext2 (rw)
/dev/nbd1 on /mnt/nbd1 type vfat (rw)
阅读(5775) | 评论(1) | 转发(0) |
0

上一篇:编译NBD模块

下一篇:linux配置IPV6

给主人留下些什么吧!~~

yangyangRH2014-01-02 18:10:49

如果client端连接不上server端:

# iptables -F
# setenforce 0