cinder 挂载卷和 iSCSI原理
LVM名称介绍
PV:物理磁盘
VG:卷组,多个PV可以组成一个VG,一个VG可以划分成多个LV(逻辑卷)。
PP:物理区块,将一个VG逻辑的划分成连续的小块。
LP:逻辑区块,若干个PP组成一个LP,多个PP组成一个LP,类似于raid0;一个LP映射多个PP镜像,类似于raid1。
LV:由VG划分,若干连续LP组成一个LV(对应OS层的分区
LVM创建到挂载到物理机再到虚机实验
需要安装 lvm2
yum install lvm2
1.给虚拟机挂载三个云硬盘作为硬盘
2.创建pv
pv create /dev/vdc /dev/vdd /dev/vde
pvscan查看
3.创建vg
-s表示最小的块的大小
“zhou”VG创建成功,包含三块硬盘
注:vgextend vg名 硬盘名 扩展VG ( vgreduce减少)
4.创建 lv
lvcreate -L 20G -n lvname vgname
pvs;lvs;vgs;
后续就是对lv的处理 格式化后可以使用
服务端安装
yum install scsi-target-utils
vim/etc/tgt/targets.conf
- <targetiqn.2014-07.com.tecmint:tgt1>
- backing-store /dev/vg_iscsi/lv_iscsi
- backing-store /dev/vg_iscsi/lv_iscsi
- </target>
- iSCSI 采取限定名 (iqn.2014-07.com.tecmint:tgt1).
- 名称随便你
- 用于确定目标名, 这是这台服务器中的第一个目标
- LVM共享特定的LUN,backstore 通过fdisk -l查看磁盘路径
service tgtd start
- #tgtadm --mode target --op show
tgt-admin --show
上面的命令会列出可用LUN的下面这些信息
- iSCSI 限定名
- iSCSI 已经准备好
- 默认LUN 0被控制器所保留
- LUN 1是我们定义的目标器
- 这里我为每个LUN都定义了4GB
- 在线: 是的,这就是可以使用的LUN
initiar端
1.发现
iscsiadm -m discovery --type sendtargets --portal IP
2.登陆scsi,挂载到物理机
命令:iscsiadm -m node -T <target-name> -p <ip-address>:<port> --login(执行发现之后自动登陆)
#iscsiadm -m node -T iqn.2016-07.com.zmg:tgt2 -p 10.133.47.139:3260 --login
可以看到lun已经挂载到物理主机上了,接下来就是挂载到虚拟机。
端口scsi iscsiadm -m node -T [target-name] -p [ip-address] –u
fdisk可以看到disk已经出现在host上
3.挂载到虚拟机
将这个disk attach到虚拟机上,使用libvirt实现
root:~#
virsh attach-disk instance-0000000b --source /dev/mapper/cinder--volumes-xxxxx --target vdc
Disk attached successfully
ssh到虚拟机里面,发现又多了一个disk
总结:LVM创建lv,然后把逻辑卷定义为iscsi存储的目标设备target,会有LUN ID,然后客户端initiator端发现目标设备
,然后登陆链接目标设备,挂载为物理机的磁盘,然后通过libvirt driver挂载到虚拟机上。
目的:iscsi是为了将存储设备通过ip网络连接在一起,使数据存储不受地域限制。
工作原理:
iscsi的协议自顶向下一共可以分为三层:
1。scsi层:根据客户端发出的请求建立 scsi cdb(命令和数据块),并传给iscsi层。同时接收来自iscsi层的cdb(命令描述块),并向应用返回数据。
2。iscsi层:对sicsi cdb进行封装,以便能够在基于tcp/ip协议的网络上进行传输,完成scsi到tcp/ip的协议映射。这一层是iscsi协议的核心层。(ISCSI协议封装SCSI报文为ip数据包)
3。tcp/ip层:对IP报文进行路由和转发,并且提供端到端的透明可靠的传输.(TCP/IP报文封装)
遇到问题小记
问题描述:SCSI服务器端与客户端可相互ping通,但当iSCSI客户端discover scsi-targets时,报错 No route to host 防火墙 iptables的原因 关掉firewalld