Linux NBD 教程:网络块设备快速入门指南
网络块设备用于访问物理上不驻留在本地机器上的远程存储设备。使用网络块设备,我们可以在本地机器上通过以下三种方式访问和使用远程存储设备:
- SWAP
- File System
- RAW
NBD 将远程资源作为本地资源呈现给客户端。此外,NBD 驱动程序使远程资源看起来像 Linux 中的本地设备,从而可以构建廉价且安全的实时镜像。
您还可以使用 NBD 将远程机器存储区域用作本地机器交换区域。
要设置基于 NBD 的文件系统,我们需要一个 nbd-server(在远程机器上,我们喜欢访问/创建内容)和 nbd-client(在本地机器上,我们喜欢在本地访问远程存储设备)。
一、NBD服务端配置步骤
1.安装nbd-server
如果您使用 Debian 风格,请通过 apt-get 获取 nbd-server。
# apt-get install nbd-server
2.创建文件内容
使用 dd 创建一个文件,如下所示。
# dd if=/dev/zero of=/mnt/dhini bs=1024 count=36000
使用 mke2fs 将 /mnt/dhini 作为文件系统。
# mke2fs /mnt/dhini
当您尝试将 /mnt/dhini 设为 ext2 文件系统时,您可能会收到如下所示的警告消息。按 y 继续。
/mnt/dhini is not a block special device.
Proceed anyway? (y,n) y
3.启动NBD服务器守护进程
Syntax: nbd-server port-number filename/filesystem
# nbd-server 1043 /mnt/dhini
您还可以在多个端口上运行 nbd-server,如下所示。
# nbd-server 1043 1077 1076 /mnt/dhini
也可以指定超时时间使服务器运行N空闲秒
二、NBD 客户端配置步骤
在要访问远程存储设备的客户端机器中执行以下步骤。
1.安装nbd-client
如果您使用的是 debian 风格,请通过 apt-get 获取 nbd-client。
# apt-get install nbd-client
2. 使用 nbd-client 在客户端机器上创建文件系统
Syntax: nbd-client server-ip server-port# filename/filesystem
# nbd-client 192.168.1.11 1043 /mnt/dhini
Starting NBD client process: Connecting...Negotiation: ..size = 36000KB
bs=1024, sz=36000
connected /mnt/dhini
Activating...
fsck 1.39-WIP (31-Dec-2005)
/mnt/dhini: Superblock last write time is in the future. FIXED.
/mnt/dhini has gone 49710 days without being checked, check forced.
/mnt/dhini: |===============================| 56.0%
/mnt/dhini: |===============================| 100.0%
一旦达到 100%,您将在同一路径上获得本地机器上的块设备。
$ls -lh /mnt/dhini
brw-r--r-- 1 root root 43, 0 2009-02-05 17:31 /mnt/dhini
如果您在 NBD 配置过程中遇到任何问题,您还可以通过 dpkg-reconfigure 配置 nbd-server 和 nbd-client。
三、在客户端挂载文件系统
# mkdir /rem_space
# mount /mnt/dhini /rem_space
挂载后,您可能会获得带有“lost+found”的目录。您可以从此时开始正确访问文件和目录。
四、在服务器端获取客户端更改
在本地挂载 nbd 文件系统
# mount -o loop /mnt/dhini /client_changes
如果您没有使用“-o 循环”选项,您可能会收到以下错误:
mount: /mnt/dhini is not a block device (maybe try `-o loop'?)
当您列出 /client_changes 时,您将正确获得所有客户端创建的文件和目录。
五、访问远程存储作为本地交换内存区域
服务器端配置:
1.创建文件
# dd if=/dev/zero of=/mnt/dhini bs=1024 count=16000
2. 不是在 ext2 文件系统中创建文件,而是使用 mkswap 将其创建为交换文件
# mkswap /mnt/dhini
3. 运行服务器守护进程
# nbd-server 1043 /mnt/dhini
客户端配置:
1. 获取文件系统作为交换区
# nbd-client 192.168.1.11 1043 -swap /mnt/dhini
2. 使用“cat /proc/swaps”进行交叉检查。这将列出交换区域
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/hda4 partition 650624 57732 -1
/mnt/dhini partition 15992 0 -4
- 点赞
- 收藏
- 关注作者
评论(0)