Linux-iscsi的共享设定

来源:互联网 发布:知乎回答怎么取消匿名 编辑:程序博客网 时间:2024/06/06 01:58

iscsi

iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM 下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研究中心共同开发的,是一个供硬件设备使用的、可在IP协议上层运行的SCSI指令集,是一种开放的基于IP协议的工业技术标准。该协议可以用TCP/IP对SCSI指令进行封装,使得这些指令能够通过基于P网络进行传输,从而实现SCSI 和TCP/IP协议的连接。对于局域网环境中的用户来说,采用该标准只需要不多的投资就可以方便、快捷地对信息和数据进行交互式传输及管理。


[root@server Desktop]# yum install targetcli -y

systemctl start target 开启服务

fdisk /dev/vdb 创建vdb1 5GB


[root@server Desktop]# targetcli

targetcli shell version 2.1.fb34

Copyright 2011-2013 by Datera, Inc and others.

For help on commands, type 'help'.

/> ls

o- / ......................................................................... [...]

  o- backstores .............................................................. [...]

  | o- block .................................................. [Storage Objects: 0]

  | o- fileio ................................................. [Storage Objects: 0]

  | o- pscsi .................................................. [Storage Objects: 0]

  | o- ramdisk ................................................ [Storage Objects: 0]

  o- iscsi ............................................................ [Targets: 0]

  o- loopback ......................................................... [Targets: 0]


/> /backstores/block create westos:storage1 /dev/vdb1

Created block storage object westos:storage1 using /dev/vdb1.

/> /iscsi create iqn.2017-12.com.example:storage1

Created target iqn.2017-12.com.example:storage1.

Created TPG 1.

/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/acls create iqn.2017-12.com.example:westoskey

Created Node ACL for iqn.2017-12.com.example:westoskey

/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/luns create /backstores/block/westos:storage1

Created LUN 0.

Created LUN 0->0 mapping in node ACL iqn.2017-12.com.example:westoskey

/> iscsi/iqn.2017-12.com.example:storage1/tpg1/portals create 172.25.254.130

Using default IP port 3260

Created network portal 172.25.254.130:3260.

/> exit

Global pref auto_save_on_exit=true

Last 10 configs saved in /etc/target/backup.

Configuration saved to /etc/target/saveconfig.json



写入这些策略

[root@server Desktop]# firewall-cmd --permanent --add-port=3260/tcp

success 开启3260端口 加载防火墙 然后我们进行查看


[root@server Desktop]# firewall-cmd --reload

success

[root@server Desktop]# targetcli

targetcli shell version 2.1.fb34

Copyright 2011-2013 by Datera, Inc and others.

For help on commands, type 'help'.

 

/> ls

o- / ......................................................................... [...]

  o- backstores .............................................................. [...]

  | o- block .................................................. [Storage Objects: 1]

  | | o- westos:storage1 ................. [/dev/vdb1 (5.0GiB) write-thru activated]

  | o- fileio ................................................. [Storage Objects: 0]

  | o- pscsi .................................................. [Storage Objects: 0]

  | o- ramdisk ................................................ [Storage Objects: 0]

  o- iscsi ............................................................ [Targets: 1]

  | o- iqn.2017-12.com.example:storage1 .................................. [TPGs: 1]

  |   o- tpg1 ............................................... [no-gen-acls, no-auth]

  |     o- acls .......................................................... [ACLs: 1]

  |     | o- iqn.2017-12.com.example:westoskey .................... [Mapped LUNs: 1]

  |     |   o- mapped_lun0 ....................... [lun0 block/westos:storage1 (rw)]

  |     o- luns .......................................................... [LUNs: 1]

  |     | o- lun0 .............................. [block/westos:storage1 (/dev/vdb1)]

  |     o- portals .................................................... [Portals: 1]

  |       o- 172.25.254.130: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

客户端中进行的操作

156  yum install iscsi-initiator-utils.x86_64 -y

  157  systemctl start iscsi

  158  vim /etc/iscsi/initiatorname.iscsi 这个iqn是在服务端可以查看到的 如上图所示


  159  systemctl start iscsi

  160  iscsiadm -m discovery -t st -p 172.25.254.130 m是动作 -t是类型的意思

-m是动作 -t 是类型 -p是ip

  161  iscsiadm -m node节点 -T iqn.2017-12.com.example:storage1 -p 172.25.254.130 -l(-l是登陆的意思-u是退出登录的意思)


  162  fdisk -l  能看到多出来的sda就是服务端共享的/dev/vdb1

  164  fdisk /dev/sda 建立出sda1 5G全部给他 直接回车


  165  partprobe 同步分区表

  166  blkid

  167  mkfs.xfs /dev/sda1

  170  mount /dev/sda1 /mnt/ 把sda1挂载到mnt下 然后在下面可以创建文件


  171  df

  172  cd /mnt/

  173  touch file1

我们可以在服务端进行测试无法进行/dev/vdb1的挂载 应为/dev/vdb1正在被客户端进行挂载使用


挂载的时候我们可以使用永久挂载但是这里我们就需要注意了正常的永久挂载可能会导致系统起不来因为这里我们使用的是服务端的硬盘为网络设备而开机的读取中会先读取/etc/fstab下的内容 之后再读取网络的配置文件 而这是网络设备没有网络是肯定起不来的 同时设备的名称可能会发生漂移  所以这里我们呢不写设备名称 直接用blkid 查看 写入的是id  id 是唯一的 所以不用害怕会发生漂移

正确的写法如下

UUID="7a8ea28d-0374-486e-981d-cf3a8b53dd03"     /mnt  xfs defaults,_netdev 0 0

_netdev表明这是网络设备


之后就可以正常启动了

错误的写法

/dev/sda1 /mnt xfs defaults 0 0 这样会导致系统起不来 解决办法就是 输入ROOT用户的密码 然后vim /etc/fstab 删除掉这一行就可以了 然后reboot 系统就可以以正常启动了

如何进行卸载呢 我们可以执行以下的操作

首先第一步进行卸载 umount /mnt

 iscsiadm -m node节点 -T iqn.2017-12.com.example:storage1 -p 172.25.254.130 -u (这里-u表示的是退出登陆)

 iscsiadm -m node节点 -T iqn.2017-12.com.example:storage1 -p 172.25.254.130 -o delete (-o delete 表示的是删除设备)

然后我们进行重启服务 systemctl restart iscsi

fdisk -l 可以进行分区查看 可以看到sda1已经消失了

我们也可以下载tree命令 进行查看 yum install tree -y

然后使用tree /var/lib/iscsi/ 也可以看到内容消失了

这里我们也可以使用lvm分区的方式来进行

在服务端我们进行的操作如下

fdisk /dev/vdb n ~ ~ +1G t 8e 改成lvm的类型



 pvcreate /dev/vdb1

61  vgcreate iscsi_vg /dev/vdb1

62  lvcreate -l 255 -n iscsi_lv0 iscsi_vg

创建lvm 分区   查看vg的由多少个pe组成的 用的vgdisplay


然后往targetcli中写入策略

[root@server Desktop]# targetcli

targetcli shell version 2.1.fb34

Copyright 2011-2013 by Datera, Inc and others.

For help on commands, type 'help'.

/> /backstores/block create westos:storage1 /dev/iscsi_vg/iscsi_lv0

Created block storage object westos:storage1 using /dev/iscsi_vg/iscsi_lv0.

/> /iscsi create iqn.2017-12.com.example:storage1

Created target iqn.2017-12.com.example:storage1.

Created TPG 1.

/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/acls createiqn.2017-12.com.example:key1

Created Node ACL for iqn.2017-12.com.example:key1

/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/luns create /backstores/block/westos:storage1

Created LUN 0.

Created LUN 0->0 mapping in node ACL iqn.2017-12.com.example:key1

/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/portals create 172.25.254.130

/> ls

o- / ......................................................................... [...]

  o- backstores .............................................................. [...]

  | o- block .................................................. [Storage Objects: 1]

  | | o- westos:storage1  [/dev/iscsi_vg/iscsi_lv0 (1020.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.2017-12.com.example:storage1 .................................. [TPGs: 1]

  |   o- tpg1 ............................................... [no-gen-acls, no-auth]

  |     o- acls .......................................................... [ACLs: 1]

  |     | o- iqn.2017-12.com.example:key1 ......................... [Mapped LUNs: 1]

  |     |   o- mapped_lun0 ....................... [lun0 block/westos:storage1 (rw)]

  |     o- luns .......................................................... [LUNs: 1]

  |     | o- lun0 ................ [block/westos:storage1 (/dev/iscsi_vg/iscsi_lv0)]

  |     o- portals .................................................... [Portals: 0]

  o- loopback ......................................................... [Targets: 0]


Using default IP port 3260

Created network portal 172.25.254.130:3260.


然后我们在客户端中进行操作

 vim /etc/iscsi/initiatorname.iscsi

  164  systemctl start iscsi

  165  iscsiadm -m discovery -t st -p 172.25.254.130

  166  iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.130 -l

这里我们会发现有报错无法登陆成功

我们下载tree命令进行查看会发现原来的两个记录没有删除 这时候我们对其进行删除


然后进行重启服务systemc tl restart iscsid.service

Systemctl restart iscsi.service

然后在进行登陆就可以成功啦

然后我们在客户端fdisk –l 就可以查看到1g的服务端共享硬盘

如何给这个硬盘扩容呢

在服务端进行如下操作

Fdisk /dev/vdb n 2 ~ ~ +1G t 8e wq退出保存


然后pvcreat /dev/vdb2

Vgextend iscsi_vg /dev/vdb2

Lvextend –L 1500M /dev/iscsi_vg/iscsi_lv0


Lvs 可以看到扩容成功了

接下来在客户端fdisk –l 就可以看到由1000M扩大到1500M



                                                                                                                                                                                                               over~


原创粉丝点击