前边说过的cifs以及nfs这个文件共享系统虽然已经是比较成熟的了,但是在客户机端连接到服务器端上传文件时,先会将文件转换为2进制文件,在接受端接受到2进制文件后在转化为相应的格式显示出来,然后在服务器端把这个文件转化为2进制文件,然后存储在磁盘中。既然是要将文件存储在服务器端,那么为什么不能直接保存到磁盘中呢?在这个过程中,无疑出现了很多没有必要的部分,所以我们现在来看看这个磁盘共享问题--------iscsi(Internet Small Computer System Interface)。
iscsi是一个供硬件设备使用的、可在IP协议上层运行的SCSI指令集,是一种开放的基于IP协议的工业技术标准。该协议可以用TCP/IP对SCSI指令进行 封装,使得这些指令能够通过基于P网络进行传输,从而实现SCSI 和TCP/IP协议的连接。对于局域网环境中的用户来说,采用该标准只需要不多的投资就可以方便、快捷地对信息和数据进行交互式传输及管理。
首先通过fdisk 创建出来一块要做实验的硬盘
pvcreate /dev/vdb1
vgcreate iscsi_vg0 /dev/vdb1
lvcreate -L 2.2G-n iscsi_lv0 iscsi_vg0 ---------------磁盘满了,这块暂时忽略
开始使用targetcli共享
targetcli
/backstores/block create westos:storage1 /dev/vdb1 ---------------先将要共享的磁盘块化,名字自定义。
/iscsi create iqn.2017-12.com.example:storage1 ----------------创建要共享的磁盘,这个名字必须以iqn.开头。
/iscsi/iqn.2017-12.com.example:storage1/tpg1/acls create iqn.2017-12.com.example:westoskey ---------------创建要给客户端主机使用的钥匙
/iscsi/iqn.2017-12.com.example:storage1/tpg1/luns create /backstores/block/westos:storage1 --------------创建要啊共享出去的逻辑单元。
iscsi/iqn.2017-12.com.example:storage1/tpg1/portals create 172.25.254.220 ----------------t提供共享硬盘的主机ip
通过ls查看。可以得到创建的所有信息。
firewall-cmd --permanent --add-port=3260/tcp ---------------------------添加3260端口到防火墙。
然后在客户端:
yum install iscsi-initiator-utils.x86_64 -y --------------------安装iscsi软件
vim /etc/iscsi/initiatorname.iscs
InitiatorName=iqn.2017-12.com.example:westoskey 将服务器端的钥匙拿到
没有获得共享硬盘之前:
iscsiadm -m discovery -t st -p172.25.254.230
iscsiadm -m node -Tiqn.2016-12.com.example:storage1 -p 172.25.254.230 -l 登陆到172.25.254.220
然后fdisk -l
/dev/sda就是共享到的硬盘.
fdisk /dev/sda
partprobe
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt/
成功获取到分区/dev/sda1
然后mount /dev/sda1 /mnt 就可以用了!
开机要自动启动:vim /etc/fstab
因为开机时候系统会自动扫描这个文件,如果用/dev/sda1有可能会使名称发生“漂移“现象,会出现读取不准确,所以在这里使用它的uid还是比较好的,使用_netdev 是因为要从服务器端获取这个硬盘资源。
要删除时候:客户主机端:
iscsiadm -m node -T iqn.2017-12.com.example:storage1 -u ---------------暂时删除
iscsiadm -m node -T iqn.2017-12.com.example:storage1 -o delete --------------永久删除
从服务器获取到的node信息存放在 /etc/iscsi/nodes/这个目录下
从哪台服务器端获取到的信息存放在 /var/lib/iscsi/send_tarages/这个目录下边
通过rm -rf /etc/iscsi/nodes/可以清空登陆服务器信息
服务器端删除:
clearconfig confirm=true
本文转自技术小白JDY51CTO博客,原文链接: http://blog.51cto.com/13355576/2049587,如需转载请自行联系原作者