iscsi共享存储的简单配置和应用
1、环境介绍
SCSI(Small Computer System Interface)是块数据传输协议,在存储行业广泛应用,是存储设备最基本的标准协议。从根本上说,iSCSI协议是一种利用IP网络来传输潜伏时间短的SCSI数据块的方法,ISCSI使用以太网协议传送SCSI命令、响应和数据。ISCSI可以用我们已经熟悉和每天都在使用的以太网来构建IP存储局域网。通过这种方法,ISCSI克服了直接连接存储的局限性,使我们可以跨不同服务器共享存储资源,并可以在不停机状态下扩充存储容量。
所需软件与软件结构
CentOS 将 tgt 的软件名称定义为 scsi-target-utils ,因此你得要使用 yum 去安装他才行。至于用来作为 initiator 的软件则是使用 linux-iscsi 的项目,该项目所提供的软件名称则为 iscsi-initiator-utils 。所以,总的来说,你需要的软件有:
scsi-target-utils:用来将 Linux 系统仿真成为 iSCSI target 的功能;
iscsi-initiator-utils:挂载来自 target 的磁盘到 Linux 本机上。
那么 scsi-target-utils 主要提供哪些档案呢?基本上有底下几个比较重要需要注意的:
/etc/tgt/targets.conf:主要配置文件,设定要分享的磁盘格式与哪几颗;
/usr/sbin/tgt-admin:在线查询、删除 target 等功能的设定工具;
/usr/sbin/tgt-setup-lun:建立 target 以及设定分享的磁盘与可使用的
客户端等工具软件。
/usr/sbin/tgtadm:手动直接管理的管理员工具 (可使用配置文件取代);
/usr/sbin/tgtd:主要提供 iSCSI target 服务的主程序;
/usr/sbin/tgtimg:建置预计分享的映像文件装置的工具 (以映像文件仿真磁盘);
这次的实验结构
(sdx1、sdy1是物理的磁盘通过lun连接到target虚拟的共享块,在客户端挂载这个块。这里我们添加一块硬盘sdb,创建sdb1(400m)和sdb2(500m))
2、server端配置
添加一块磁盘后
复查一下
[root@100 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 59.5G 0 part
├─rhel-swap 253:0 0 2G 0 lvm [SWAP]
├─rhel-root 253:1 0 38.6G 0 lvm /
└─rhel-home 253:2 0 18.9G 0 lvm /home
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 400M 0 part
└─sdb2 8:18 0 500M 0 part
sr0 11:0 1 3.6G 0 rom /dvd
安装target并加入开机自启动
yum install -y target*
systemctl start target
systemctl enable target
配置target的ctl将sdb1和sdb2共享出去
(一)、block关联磁盘
[root@100 ~]# targetcli
targetcli shell version 2.1.fb37
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> /backstores/block create block1 /dev/sdb
/dev/sdb /dev/sdb1 /dev/sdb2
...................................dev
/> /backstores/block create block1 /dev/sdb1
Created block storage object block1 using /dev/sdb1.
/> /backstores/block create block2 /dev/sdb2
Created block storage object block2 using /dev/sdb2.
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 2]
| | o- block1 .................. [/dev/sdb1 (400.0MiB) write-thru deactivated]#新建的block
| | o- block2 .................. [/dev/sdb2 (500.0MiB) write-thru deactivated]#新建的block
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 0]
o- loopback ..................................................... [Targets: 0]
/>
(二)、创建target
/> /iscsi create iqn.2018-10.20.com:disk
Created target iqn.2018-10.20.com:disk.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 2]
| | o- block1 .................. [/dev/sdb1 (400.0MiB) write-thru deactivated]
| | o- block2 .................. [/dev/sdb2 (500.0MiB) write-thru deactivated]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1] #这里是创建tartet的目录
| o- iqn.2018-10.20.com:disk ....................................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 0]
| o- luns ...................................................... [LUNs: 0]
| o- portals ................................................ [Portals: 1]
| o- 0.0.0.0:3260 ................................................. [OK]
o- loopback ..................................................... [Targets: 0]
(三)、创建lun关联block和target
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 2]
| | o- block1 .................. [/dev/sdb1 (400.0MiB) write-thru deactivated]
| | o- block2 .................. [/dev/sdb2 (500.0MiB) write-thru deactivated]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2018-10.20.com:disk ....................................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 0]
| o- luns ...................................................... [LUNs: 0]
| o- portals ................................................ [Portals: 1]
| o- 0.0.0.0:3260 ................................................. [OK]
o- loopback ..................................................... [Targets: 0]
/> iscsi/iqn.2018-10.20.com:disk/tpg1/acls create iqn.2018-10.20.com:xx
Created Node ACL for iqn.2018-10.20.com:xx
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 2]
| | o- block1 .................. [/dev/sdb1 (400.0MiB) write-thru deactivated]
| | o- block2 .................. [/dev/sdb2 (500.0MiB) write-thru deactivated]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2018-10.20.com:disk ....................................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 1]
| | o- iqn.2018-10.20.com:xx ............................ [Mapped LUNs: 0]
| o- luns ...................................................... [LUNs: 0]
| o- portals ................................................ [Portals: 1]
| o- 0.0.0.0:3260 ................................................. [OK]
o- loopback ..................................................... [Targets: 0]
/> iscsi/iqn.2018-10.20.com:disk/tpg1/luns create /
/backstores/block/block1 /lib/ /sbin/
/backstores/block/block2 /lib64/ /srv/
/bin/ /media/ /sys/
/boot/ /mnt/ /tmp/
/dev/ /opt/ /usr/
/dvd/ /proc/ /var/
/etc/ /root/
/home/ /run/
..................................................storage_object
/> iscsi/iqn.2018-10.20.com:disk/tpg1/luns create /backstores/block/block
/backstores/block/block1 /backstores/block/block2
..................................................storage_object
/> iscsi/iqn.2018-10.20.com:disk/tpg1/luns create /backstores/block/block1
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2018-10.20.com:xx
/> iscsi/iqn.2018-10.20.com:disk/tpg1/luns create /backstores/block/block2
Created LUN 1.
Created LUN 1->1 mapping in node ACL iqn.2018-10.20.com:xx
/> ls
o- / ..................................................................... [...]
o- backstores .......................................................... [...]
| o- block .............................................. [Storage Objects: 2]
| | o- block1 .................... [/dev/sdb1 (400.0MiB) write-thru activated]
| | o- block2 .................... [/dev/sdb2 (500.0MiB) write-thru activated]
| o- fileio ............................................. [Storage Objects: 0]
| o- pscsi .............................................. [Storage Objects: 0]
| o- ramdisk ............................................ [Storage Objects: 0]
o- iscsi ........................................................ [Targets: 1]
| o- iqn.2018-10.20.com:disk ....................................... [TPGs: 1]
| o- tpg1 ........................................... [no-gen-acls, no-auth]
| o- acls ...................................................... [ACLs: 1] #添加了一条认证
| | o- iqn.2018-10.20.com:xx ............................ [Mapped LUNs: 2]
| | o- mapped_lun0 ............................ [lun0 block/block1 (rw)] #关联lun
| | o- mapped_lun1 ............................ [lun1 block/block2 (rw)] #关联lun
| o- luns ...................................................... [LUNs: 2]
| | o- lun0 ................................... [block/block1 (/dev/sdb1)]
| | o- lun1 ................................... [block/block2 (/dev/sdb2)]
| o- portals ................................................ [Portals: 1]
| o- 0.0.0.0:3260 ................................................. [OK]
o- loopback ..................................................... [Targets: 0]
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
至此服务器端就配置完了,详细的配置可以到/etc/target/saveconfig.json修改
3、client端配置
(一)、安装iscsi*
软件包 iscsi-initiator-utils-6.2.0.873-29.el7.x86_64
软件包 iscsi-initiator-utils-iscsiuio-6.2.0.873-29.el7.x86_64
[root@200 ~]# yum install -y iscsi*
(二)、加入开机自启
[root@200 ~]# systemctl restart iscsid.service
[root@200 ~]# systemctl enable iscsid.service
(三)、做一个发现的操作,发现服务器共享的target名字是什么
[root@200 ~]# iscsiadm -m discovery -t st -p 192.168.137.100
192.168.137.100:3260,1 iqn.2018-10.20.com:disk
m模式mode-discovery, discoverydb.
t类型type must be sendtargets (or abbreviated as st), slp, isns or fw. Currently only sendtargets, fw, and iSNS is supported, see the DISCOVERY TYPES section.
p是IP:port
(四)、查看发现的条目
[root@200 ~]# iscsiadm -m discovery -p 192.168.137.100
# BEGIN RECORD 6.2.0.873-28
discovery.startup = manual
discovery.type = sendtargets #-t st
discovery.sendtargets.address = 192.168.137.100 #target服务端
discovery.sendtargets.port = 3260 #端口
discovery.sendtargets.auth.authmethod = None #认证没有
discovery.sendtargets.auth.username = <empty>
discovery.sendtargets.auth.password = <empty>
discovery.sendtargets.auth.username_in = <empty>
discovery.sendtargets.auth.password_in = <empty>
discovery.sendtargets.timeo.login_timeout = 15 #登录超时时间
discovery.sendtargets.use_discoveryd = No #没有使用这个发现
discovery.sendtargets.discoveryd_poll_inval = 30
discovery.sendtargets.reopen_max = 5
discovery.sendtargets.timeo.auth_timeout = 45
discovery.sendtargets.timeo.active_timeout = 30
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
# END RECORD
(五)、修改客户端的acl并登录
[root@200 ~]# iscsiadm -m node -T iqn.2018-10.20.com:disk -p 192.168.137.100 -l
Logging in to [iface: default, target: iqn.2018-10.20.com:disk, portal: 192.168.137.100,3260] (multiple)
Login to [iface: default, target: iqn.2018-10.20.com:disk, portal: 192.168.137.100,3260] successful.
[root@200 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 59.5G 0 part
├─rhel-swap 253:0 0 2G 0 lvm [SWAP]
├─rhel-root 253:1 0 38.6G 0 lvm /
└─rhel-home 253:2 0 18.9G 0 lvm /home
sdb 8:16 0 400M 0 disk
sdc 8:32 0 500M 0 disk
sr0 11:0 1 3.6G 0 rom /dvd
[root@200 ~]# cat /etc/iscsi/initiatorname.iscsi
#InitiatorName=iqn.1994-05.com.redhat:949f18f9ce84
InitiatorName=iqn.2018-10.20.com:xx ##刚才设置的acl条目
注:这个自动加载过来的磁盘重启之后是自动加载过来的
4、客户端挂载iscsi的盘
格式化sdb和sdc
[root@200 ~]# mkfs.xfs /dev/sdb
meta-data=/dev/sdb isize=256 agcount=8, agsize=12800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=102400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@200 ~]# mkfs.xfs /dev/sdc
meta-data=/dev/sdc isize=256 agcount=8, agsize=16000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
创建挂载点并挂载
[root@200 ~]# mkdir /sdb
[root@200 ~]# mkdir /sdc
注:如果需要实时同步的话需要使用gfs集群文件系统
[root@200 ~]# cat /etc/fstab |tail -n 4
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/cdrom /dvd iso9660 defaults 0 0
/dev/sdb /sdb xfs _netdev 0 0 #添加的条目
/dev/sdc /sdc xfs _netdev 0 0 #添加的条目
[root@200 ~]# # mount -a
[root@200 ~]# mount |tail -n 4
gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sdb on /sdb type xfs (rw,relatime,seclabel,attr2,inode64,noquota,_netdev)
/dev/sdc on /sdc type xfs (rw,relatime,seclabel,attr2,inode64,noquota,_netdev)
[root@200 ~]#
5、总结
(一)、增加iscsi存储
(1)发现iscsi存储:iscsiadm
-m discovery -t st -p ISCSI_IP
(2)查看iscsi发现记录:iscsiadm
-m node
(3)登录iscsi存储:iscsiadm
-m node -T LUN_NAME -p ISCSI_IP -l
(4)开机自动:
iscsiadm -m node –T LUN_NAME -p ISCSI_IP --op
update -n node.startup -v
automatic
(二)、删除iscsi存储
(1)登出iscsi存储
iscsiadm -m node -T LUN_NAME -p ISCSI_IP -u
(2)对出iscsi所有登录
iscsiadm -m node --logoutall=all
(3)删除iscsi发现记录:iscsiadm
-m node -o delete -T LUN_NAME -p ISCSI_IP
iscsi共享存储的简单配置和应用的更多相关文章
- 实验:iscsi共享存储
实验名称: iscsi共享存储 实验环境: 我们需要准备一个磁盘,对于这个磁盘我们需要使用,将这个磁盘空间共享给iscsi客户端: 实验需求: 我们这里使用两台服务器来实现iscsi共享存储: 1.指 ...
- Linux下搭建iSCSI共享存储详细步骤(服务器模拟IPSAN存储)
一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式CentOS7-1810下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 TGT 方式 CentOS6.9系统下
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式 Debian9.5下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 TGT 方式 Debian9.5系统下
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储
转至:https://www.linuxidc.com/Linux/2016-09/135655.htm Linux下搭建iSCSI共享存储 拓扑: 实验步骤: ------------------- ...
- openfiler作为文件server,实现ISCSI共享存储
还是不能发图.这是第二篇.图文在这个地址:http://download.csdn.net/detail/weimingyu945/8089893 1 登陆 首先登陆openfiler的we ...
- iSCSI 共享存储
iSCSI(Internet Small Computer System Interface,发音为/ˈаɪskʌzi/),Internet小型计算机系统接口,又称为IP-SAN,是一种基于 ...
随机推荐
- Qt之表单布局(QFormLayout)
简述 QFormLayout管理输入型控件和关联的标签组成的那些Form表单. QFormLayout是一个方便的布局类,其中的控件以两列的形式被布局在表单中.左列包括标签,右列包含输入控件,例如:Q ...
- 上传canvas图片到服务器
canvas绘图后用 canvasDom.toDataURL()可以得到png格式图片的base64 dataURI 然后用ajax post给后台 ,后端程序把开头的data:image/png; ...
- android 自己定义标签的使用,实现扁平化UI设计
2014年8月6日11:06:44 android对自己定义标签的使用.实现扁平化UI设计: 1.attrs.xml文件里自己定义标签 如: <?xml version="1.0&qu ...
- Java基础学习补充 -- 异常处理和log4j日志
Java中的异常处理 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. Java中所有异常的基类Throwable:Throwable又分为Error类和Excepti ...
- 并查集 (Union Find ) P - The Suspects
Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized ...
- vue 父子组件传值:props和$emit
<!--子组件页面--> <template> <div class="hello"> <!-- 添加一个input输入框 添加keypr ...
- notepad++调用python3中文乱码
使用notepad++,配置好快捷键调用python3,一切就绪,仿佛就差代码了,结果一使用, 中文乱码,一直没有好的解决办法. 最后只能在代码中增加一行重写向输出解决,示例如下: #!/usr/bi ...
- ActiveMQ学习总结(8)——消息队列设计精要
消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一. 当今市面上有很多主流的消息中间件,如老牌的Activ ...
- 设置UITableViewCell高度的问题
有非常多时候.UITableViewCell每行的高度是不固定的,须要动态设置. UITableView有个代理方法, -(CGFloat)tableView:(UITableView *)table ...
- EChart报表插件使用笔记(1)
报表插件Echart java类 package com.spring.controller; import java.io.IOException; import java.util.Arrays; ...