Linux Iscsi

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34556414/article/details/83512974

存储有三种类型:DAS,NAS,SAN。

DAS:直接附加存储,这个存储就在本地,在服务器主板上面接的存储,这个存储在进行存储的时候依赖于服务器本身的CPU进行处理的,如果需要扩展也是比较麻烦的。对服务器的性能是会造成影响的,(依赖于本地资源CPU,内存进行处理)。

NAS:网络附加存储,NFS,CIFS,提供的是文件系统共享,扩展性比较方便,对于大容量数据容易出现瓶颈。

SAN:存储区域网络,提供的是block设备,一块硬盘进行分区,硬盘是由block组成的,分区就将硬盘分为了多少个block,直接提供的就是block设备。主要分为两种 IP SAN(ISCSI),FC SAN,一种是IP存储,一种是光纤存储,光纤存储的性能比IP存储性能好。

 

ISCSI:SCSI OVER IP是让SCSI指令跑到IP上面(在TCP/IP网络上面来跑SCSI指令,让其提供远程存储)

 

这里分为两端

target:提供存储,和服务器一样,专门提供存储

initiator:去访问存储,一般是数据库去访问存储,比如mysql。

 

 

服务端提供存储:

(1)将分区/vdb1和file1共享出去

[root@server0 ~]# fdisk -l | grep /dev

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors

/dev/vda1   *        2048    20970332    10484142+  83  Linux

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors

/dev/vdb1            2048     2099199     1048576   83  Linux

[root@server0 ~]# dd if=/dev/zero of=/file1 bs=1M count=512

512+0 records in

512+0 records out

536870912 bytes (537 MB) copied, 9.17652 s, 58.5 MB/s

 

(2)安装软件包

[root@server0 ~]# yum install -y targetcli

Loaded plugins: langpacks

Package targetcli-2.1.fb34-1.el7.noarch already installed and latest version

Nothing to do

 

[root@server0 ~]# targetcli

Warning: Could not load preferences file /root/.targetcli/prefs.bin.

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]

/>

 

(3)配置backstores

/> /backstores/block/ create block1 /dev/vdb1   --block1是创建的名字,/dev/vdb1是物理存储

Created block storage object block1 using /dev/vdb1.

/> ls /backstores/block/

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

  o- block1 ............................................................... [/dev/vdb1 (1.0GiB) write-thru deactivated]

 

/> /backstores/fileio create  file1 /file1

Created fileio file1 with size 536870912

/> ls /backstores/fileio/

o- fileio ........................................................................................ [Storage Objects: 1]

  o- file1 ................................................................. [/file1 (512.0MiB) write-back deactivated]

 

 

(4)配置ISCSI Target

在/iscsi必须创建iqn,就是取一个名字

/> /iscsi create iqn.2018-10.com.example:server0

Created target iqn.2018-10.com.example:server0.

Created TPG 1.

格式:Iqn.创建时间.域名反写:标签(随便取名也可以,最好写上主机名)

/> ls

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

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

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

  | | o- block1 ........................................................... [/dev/vdb1 (1.0GiB) write-thru deactivated]

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

  | | o- file1 ............................................................. [/file1 (512.0MiB) write-back deactivated]

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

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

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

  | o- iqn.2018-10.com.example:server0 ...................................................................... [TPGs: 1]

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

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

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

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

  o- loopback ........................................................................

 

 

 

 

(5)配置acl指定哪些initiator可以访问存储(只给哪个客户端可以使用)。

/> /iscsi/iqn.2018-10.com.example:server0/tpg1/acls create iqn.2018-10.com.example:desktop

Created Node ACL for iqn.2018-10.com.example:desktop

/> ls

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

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

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

  | | o- block1 ........................................................... [/dev/vdb1 (1.0GiB) write-thru deactivated]

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

  | | o- file1 ............................................................. [/file1 (512.0MiB) write-back deactivated]

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

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

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

  | o- iqn.2018-10.com.example:server0 ...................................................................... [TPGs: 1]

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

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

  |     | o- iqn.2018-10.com.example:desktop ......................................................... [Mapped LUNs: 0]

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

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

  o- loopback ...................................................................................

 

(6)上面acls配置完了配置luns,luns指定了要访问哪些存储,下面可以看到一个是lun0,一个是lun1可以访问。

/> /iscsi/iqn.2018-10.com.example:server0/tpg1/luns  create  /backstores/block/block1

Created LUN 0.

Created LUN 0->0 mapping in node ACL iqn.2018-10.com.example:desktop

/> /iscsi/iqn.2018-10.com.example:server0/tpg1/luns/  create /backstores/fileio/file1

Created LUN 1.

Created LUN 1->1 mapping in node ACL iqn.2018-10.com.example:desktop

/> ls

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

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

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

  | | o- block1 ............................................................. [/dev/vdb1 (1.0GiB) write-thru activated]

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

  | | o- file1 ............................................................... [/file1 (512.0MiB) write-back activated]

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

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

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

  | o- iqn.2018-10.com.example:server0 ...................................................................... [TPGs: 1]

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

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

  |     | o- iqn.2018-10.com.example:desktop ......................................................... [Mapped LUNs: 2]

  |     |   o- mapped_lun0 ................................................................... [lun0 block/block1 (rw)]

  |     |   o- mapped_lun1 ................................................................... [lun1 fileio/file1 (rw)]

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

  |     | o- lun0 .......................................................................... [block/block1 (/dev/vdb1)]

  |     | o- lun1 ............................................................................. [fileio/file1 (/file1)]

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

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

 

o- iqn.2018-10.com.example:desktop有两个存储可以使用,一个是o- mapped_lun0 ,一个是o- mapped_lun1。

 

 

(7)配置监听在哪个IP上面,这个是服务端的IP。

/> iscsi/iqn.2018-10.com.example:server0/tpg1/portals  create  172.25.0.11

Using default IP port 3260  --等下要将这个端口在防火墙开通

Created network portal 172.25.0.11:3260.

最后目录结构如下:

(7)重启服务,将端口加入防火墙

[root@server0 ~]# firewall-cmd --permanent --add-port=3260/tcp --这里是添加端口,而不是添加service

success

[root@server0 ~]# firewall-cmd  --reload

Success

[root@server0 ~]# systemctl  restart  target

 

总结一下:上面的步骤创建了一个target( iqn.2018-10.com.example:server0),这个target只有o- iqn.2018-10.com.example:desktop .客户可以使用,里面的话只有两个存储mapped_lun0,mapped_lun1,最后这个服务开放在ip为172.25.0.11:3260的3260这个端口上面。

 

 

 

上面是服务端的配置,那么下面就是客户端的配置了。

 

客户端配置

(1)安装软件包

[root@desktop0 ~]# yum install iscsi*

Loaded plugins: langpacks

rhel_dvd                                                                                        | 4.1 kB  00:00:00     

Package iscsi-initiator-utils-6.2.0.873-21.el7.x86_64 already installed and latest version

Package iscsi-initiator-utils-iscsiuio-6.2.0.873-21.el7.x86_64 already installed and latest version

Nothing to do

(2)将服务重启

[root@desktop0 ~]# systemctl restart iscsi  --这个服务主要是用来发现和挂载存储

[root@desktop0 ~]# systemctl enable iscsi

(3)修改配置文件

[root@desktop0 ~]# vi /etc/iscsi/initiatorname.iscsi

[root@desktop0 ~]# cat /etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2018-10.com.example:desktop  --这个是在服务端配置的(acl指定在客户端哪些initiator可以访问存储),其实这就是客户端和服务端通讯的密码

 

上面配置好之后就是发现服务端的存储了

 

(4)发现服务端

[root@desktop0 ~]# iscsiadm -m discovery -t st -p 172.25.0.11  --172.25.0.11是服务端的ip

172.25.0.11:3260,1 iqn.2018-10.com.example:server0    --可以看到发现服务端了

(5)登入到服务端

[root@desktop0 ~]# iscsiadm -m node -T iqn.2018-10.com.example:server0 -l

Logging in to [iface: default, target: iqn.2018-10.com.example:server0, portal: 172.25.0.11,3260] (multiple)

Login to [iface: default, target: iqn.2018-10.com.example:server0, portal: 172.25.0.11,3260] successful.

 

[root@desktop0 ~]# fdisk -l | grep /dev

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors

/dev/vda1   *        2048    20970332    10484142+  83  Linux

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors

Disk /dev/sda: 1073 MB, 1073741824 bytes, 2097152 sectors --可以看到多了两个存储

Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors

 

这个时候使用远端的存储就像使用本地的存储一样,可以将其分区格式化,最后就可以挂载了。

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/83512974
今日推荐