使用qemu-nbd进行rbd挂载

使用qemu-nbd进行rbd挂载

1. 安装软件

apt-get install qemu-utils
apt-get install ceph-common
  • 注意: 请确保ceph-common版本与ceph服务端一致

2.部署nbd模块的配置: /etc/modprobe.d/nbd.conf

写入如下内容:

options nbd max_part=16 nbds_max=99

说明: 
- max_part:块设备支持的最大分区数,默认值为0,不修改的话部分情况会无法显示分区 
- nbds_max: nbd设备(即/dev/nbd*)的个数, 设备系统默认只有16个,请根据实际情况酌情修改,不能高于255

3.加载nbd模块

[email protected]-test:~# modprobe nbd
## 检查是否成功加载
[email protected]-test:~# ls /dev/nbd*
/dev/nbd0 /dev/nbd1 ......

4.新建rbd并映射到本地块设备

## 新建测试设备
[email protected]-test:~# qemu-img create -f raw rbd:aquarius-sas-img/test-nbd1:id=docker 100G
## 映射
## 格式为:qemu-nbd -c [nbd设备名] rbd:[pool名]/[rbd名称]:id=[连接存储使用的用户名]
[email protected]-test:~# qemu-nbd -c /dev/nbd1 rbd:aquarius-sas-img/test-nbd1:id=docker
## 添加其他参数格式如下,基本任何ceph.conf里面的参数都可以加在后面
qemu-nbd -c /dev/nbd0 rbd:aquarius-sas-img/testnbd4-aquarius-sas-img:id=network:conf=/dev/null:mon_host=10.82.255.164:key=AQASHd1aNsf5JBAA3TyMR8cBZ52W988T4YIIbQ==
## 注意:这里需要手动指定映射的nbd设备,因此需要事先去检查哪些nbd设备已经使用

## 检查是否出现这个块设备
[email protected]-test:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nbd1 43:0 0 100G 0 disk
sda 8:0 0 278.5G 0 disk
├─sda2 8:2 0 1K 0 part
├─sda9 8:9 0 246.5G 0 part /home
├─sda7 8:7 0 8G 0 part /var
├─sda5 8:5 0 4G 0 part [SWAP]
├─sda1 8:1 0 8G 0 part /
├─sda8 8:8 0 4G 0 part /tmp
└─sda6 8:6 0 8G 0 part /usr
## 新建完成后就可以直接当做块设备来使用,分区、格式化等任何你想做的事

5.简单测试

## 分区,也可以不分区直接格式化后进行读写
[email protected]-test:~# parted -s /dev/nbd1 mktable GPT
[email protected]-test:~# parted -s /dev/nbd1 mkpart primary 1 100%
## 格式化
[email protected]-test:~# mkfs.xfs /dev/nbd1p1
meta-data=/dev/nbd1p1 isize=256 agcount=4, agsize=6553472 blks
         = sectsz=512 attr=2, projid32bit=1
         = crc=0 finobt=0
data = bsize=4096 blocks=26213888, imaxpct=25
         = sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=12799, version=2
         = sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
## 挂载
[email protected]-test:~# mount /dev/nbd1p1 /mnt/
[email protected]ld-test:~# cd /mnt/
## 简单dd测试
[email protected]-test:~# dd if=/dev/zero of=test-dd-in-nbd bs=2M count=100
100+0 records in
100+0 records out
209715200 bytes (210 MB) copied, 0.145939 s, 1.4 GB/s

[email protected]-test:~# ls -lh
total 200M
-rw-r--r-- 1 root root 200M 5月 14 17:07 test-dd-in-nbd

[email protected]-test:~# df -h|grep nbd
/dev/nbd1p1 100G 233M 100G 1% /mnt

6.解挂

## 解挂载
[email protected]-test:~# cd /
[email protected]-test:~# umount /mnt/
## 解除映射
[email protected]-test:~# qemu-nbd -d /dev/nbd1
/dev/nbd1 disconnected
## 检查块设备
[email protected]-test:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 278.5G 0 disk
├─sda2 8:2 0 1K 0 part
├─sda9 8:9 0 246.5G 0 part /home
├─sda7 8:7 0 8G 0 part /var
├─sda5 8:5 0 4G 0 part [SWAP]
├─sda1 8:1 0 8G 0 part /
├─sda8 8:8 0 4G 0 part /tmp
└─sda6 8:6 0 8G 0 part /usr

原文地址:https://www.cnblogs.com/lifei02/p/9892549.html

时间: 2024-10-22 09:03:05

使用qemu-nbd进行rbd挂载的相关文章

使用rbd-nbd进行rbd挂载

使用rbd-nbd进行rbd挂载 1. 使用rbd-nbd进行rbd挂载 1.1. 1. 安装软件 1.2. 2.部署nbd模块的配置: /etc/modprobe.d/nbd.conf 1.3. 3.加载nbd模块 1.4. 4.新建rbd并映射到本地块设备 1.5. 5.简单测试 1.6. 6.解挂载.解除映射 1. 安装软件 apt-get install ceph-common rbd-nbd 注意: 请确保ceph-common版本与ceph服务端一致 2.部署nbd模块的配置: /e

Ubuntu下的NBD和iscsi挂载

以下是在Ubuntu12.04.4下测试的 NBD网络块设备的使用 一.NBD简介 NBD(Network Block Device)让你可以将一个远程主机的磁盘空间,当作一个块设备来使用.就像一块硬盘一样.使用它,你可以很方便的将另一台服务器的硬盘空间,增加到本地服务器上. 二.NBD安装方法 在Turbolinux的10以上的版本中,NBD已被编译成模块.保存在 /lib/modules/$version/kernel/driver/block/下.你还需要在服务器端和客户端上安装nbd-s

kubernetes ceph的rbd挂载步骤

k8s集群每一台上面都要安装客户端: ceph-deploy  install  k8s的ip地址 创建一个k8s操作用户: ceph auth add client.k8s mon 'allow rwx' osd 'allow rwx' ceph auth get client.k8s -o /etc/ceph/ceph.client.k8s.keyring #导出新建用户的钥匙 将导出的钥匙放在k8s每台的/etc/ceph/下面 ceph auth list  #查看权限 创建一个池和映射

centos/ubuntu挂载vmdk、 vdi为块设备的方法(非vdfuse)

因vdfuse只支持virtualbox4.x,目前已经在新版ubuntu或centos中取消,换个思路,可以使用qemu+nbd的方法挂载vmdk,vdi,vhd,vhdx等格式的磁盘. 以下方法在centos7上实现. 1.编译内核,编译nbd为模块. yum groupinstall "DevelopmentTools" yum install gcc ncurses ncurses-devel bc yum update wget https://www.kernel.org/

Ceph安装QEMU报错:User requested feature rados block device configure was not able to find it

CentOS6.3中,要想使用Ceph的block device,需要安装更高版本的QEMU. 安装好ceph后,安装qemu-1.5.2 # tar -xjvf qemu-1.5.2.tar.bz2 # cd qemu-1.5.2 # ./configure --enable-rbd 一定要加上--enable-rbd选项,这样qemu才能支持rbd协议. 这一步可能会报错: ERROR: User requested feature rados block device configure

连接器前置挂载U盾

连接器前置挂载U盾 1. 宿主机配置及其信息 虚拟化软件版本 主机名 宿主机IP 账号及其密码 WorkStation windows idca- vm01 172.16.6.30 * Qemu-kvm 1.5.3 idca- vm02 172.16.6.40 * Qemu-kvm 1.5.3 idca- vm03 172.16.6.50 * 2.宿主机挂载U盾脚本 2.1宿主机172.16.6.40挂载脚本及其命令 脚本内容如下: echo -n " # Bus 002 Device 019:

CentOS7 Ceph RBD CephFS 存储

Ceph RBD  CephFS 存储 环境准备: (这里只做基础测试, ceph-manager , ceph-mon, ceph-osd 一共三台) 10.6.0.140 = ceph-manager 10.6.0.187 = ceph-mon-1 10.6.0.188 = ceph-osd-1 10.6.0.94 = node-94 注: ceph 对时间要求很严格, 一定要同步所有的服务器时间 一.在 manager 上面修改 /etc/hosts : 10.6.0.187 ceph-m

Ceph RBD CephFS 存储

Ceph RBD  CephFS 存储 环境准备: (这里只做基础测试, ceph-manager , ceph-mon, ceph-osd 一共三台) 10.6.0.140 = ceph-manager 10.6.0.187 = ceph-mon-1 10.6.0.188 = ceph-osd-1 10.6.0.94 = node-94 注: ceph 对时间要求很严格, 一定要同步所有的服务器时间 一.在 manager 上面修改 /etc/hosts : 10.6.0.187 ceph-m

kvm中虚拟机xml文件释义

xml文件内容是来定义kvm中domain的配置信息,可以使用virt-install来生成,但需要指定各个选项,那还不如生成一个基本的xml或复制模板来做相应修改. 以下是kvm中domain的xml配置解释. <!-- #提示信息 WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE  OVERWRITTEN AND LOST. Changes to this xml configuration sho