Linux与ISCSI

Linux与ISCSI,第1张

ISCSI(Internet Small Computer System Interface):Internet 小型计算机系统接口,是一个基于 TCP/IP 的协 议,主要用于通过 IP 网络仿真 SCSI,从而为远程块存储设备提供数据传输和管理。说白了,就是通过 网络由专门的服务器提供存储管理,以实现数据的远程储存,便于数据的集中管理,从而简化了数据复 制、迁移和容灾。

NAS(网络附加存储服务器) SAN(存储局域网络)

基本概念:

实验环境:

准备两台虚拟机,系统是 CentOS 7版本

记住两个虚拟机之间要ping通。

一台用作服务端(Server),一台用作客户端(Client)。

主机名也必须得改,Server 改为Target  Client改为Initiator

服务端IP192.168.1.60                                 客户端 IP192.168.1.61

安装后使用命令 yum -y update升级到最新;

安装epel数据源 yum -y install epel-release

在SAN中,主机一般都是Initiator,存储设备则是Target。

Initiator  SCSI会话的发起方,向Target请求LUN,并将数据的读写指令发送给Target

Target    接受SCSI会话的一方 它接收来自Initiator的指令,为Initiator提供LUN,并实现对LUN的读写
IQN        iqn.1994-05.com.redhat:737db83a23df 全球唯一名称,用于以强制命令格式来识别启动器和目标 iqn 表示此名称将使用域作为其标识符 yyyy-mm 拥有域名的第一个月 com.redhat 逆向域名 optional_string 以冒号为前缀的可选字符串,根据需要分配                                                                         

 192.168.1.60:server端

 192.168.1.61:client端

先在Server端 *** 作

[root@server ~]# yum -y install targetd targetcli
[root@server ~]# systemctl start target
[root@server ~]# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service
to /usr/lib/systemd/system/target.service.
[root@server ~]# systemctl status target
● target.service - Restore LIO kernel target configuration
Loaded: loaded (/usr/lib/systemd/system/target.service; enabled; vendor
preset: disabled)
Active: active (exited) since Sat 2020-05-09 18:12:28 CST; 9s ago
Main PID: 17317 (code=exited, status=0/SUCCESS)

 设置防火墙

[root@server ~]# firewall-cmd --add-port=3260/tcp --permanent
success
[root@server ~]# firewall-cmd --reload
success
[root@server ~]# firewall-cmd --list-ports
3260/tcp

执行targetcli工具

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

安装完成后设置target服务开机启动,并启动服务

[root@Server ~]# systemctl enable target
[root@Server ~]# systemctl start target

Client端

安装工具

[root@client ~]# yum -y install iscsi-initiator-utils
给initiator命名
[root@client ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-05.com.bdqn:client1

启动服务

[root@client ~]# systemctl start iscsi
[root@client ~]# systemctl enable iscsi
[root@client ~]# systemctl status iscsi
● iscsi.service - Login and scanning of iSCSI devices
Loaded: loaded (/usr/lib/systemd/system/iscsi.service; enabled; vendor preset:
disabled)
Active: inactive (dead)
Condition: start condition failed at Sat 2020-05-09 19:23:49 CST; 10s ago
Docs: man:iscsiadm(8)
man:iscsid(8

 发现存储

[root@client ~]# iscsiadm -m discovery -t st -p 192.168.1.60
192.168.1.60:3260,1 iqn.2020-05.com.bdqn:disk1

 登录存储/连接target

[root@client ~]# iscsiadm -m discovery -t st -p 192.168.1.60 -l
192.168.1.60:3260,1 iqn.2020-05.com.bdqn:disk1
Logging in to [iface: default, target: iqn.2020-05.com.bdqn:disk1, portal:
192.168.1.60,3260] (multiple)
Login to [iface: default, target: iqn.2020-05.com.bdqn:disk1, portal:
192.168.1.60,3260] successful.

验证iscsi连接,查看是否得到外界硬盘

[root@client ~]# lsscsi
[0:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
[2:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0
[3:0:0:0] disk LIO-ORG server0.disk1 4.0 /dev/sdb

然后就可以像 *** 作本地磁盘一样来 *** 作iscsi磁盘 了。

[root@client ~]# gdisk /dev/sdb
...
Number Start (sector) End (sector) Size Code Name
1 2048 10487807 5.0 GiB 8300 Linux filesystem
2 10487808 20971486 5.0 GiB 8300 Linux filesystem
[root@client ~]# partprobe /dev/sdb
[root@client ~]# partprobe /dev/sdb
[root@client ~]# partprobe /dev/sdb
[root@client ~]# cat /proc/partitions
major minor #blocks name
...
8 16 10485760 sdb
8 17 5242880 sdb1
8 18 5241839 sdb2

这里将/dev/sdb1分区挂载到/mnt/iscsi目录中使用

[root@client ~]# mkdir /mnt/iscsi
[root@client ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@client ~]# mount /dev/sdb1 /mnt/iscsi/
[root@client ~]# mount | tail -1
/dev/sdb1 on /mnt/iscsi type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
[root@client ~]# df -hT /mnt/iscsi/
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb1 xfs 5.0G 33M 5.0G 1% /mnt/iscsi

iscsi,网络存储,经过网络,那么就必须要注意安全。注意是以防火墙来体现安全。 可以再开一台虚拟机。当做iscsi客户端,看看是否能够发现iscsi存储。

[root@work ~]# yum install iscsi*
[root@work ~]# systemctl start iscsi
[root@work ~]# iscsiadm -m discovery -t st -p 192.168.1.60
192.168.1.60:3260,1 iqn.2020-05.com.bdqn:disk1

查看状态

[root@server ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor
preset: enabled)
Active: active (running) since Sat 2020-05-09 18:06:03 CST; 5 days ago
Docs: man:firewalld(1)
Main PID: 6414 (firewalld)
...

查看开放端口

[root@server ~]# firewall-cmd --zone=public --list-ports
3260/tcp

然后我们就要想,怎么能够添加只允许的客户端IP。使用防火墙规则来实现。

[root@server ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source
address=192.168.1.161 port port=3260 protocol=tcp accept' --permanent
success
[root@server ~]# firewall-cmd --reload
success
[root@server ~]# firewall-cmd --list-rich-rules
rule family="ipv4" source address="192.168.1.161" port port="3260"
protocol="tcp" accept

那么现在,我们的服务器同时有开启了httpd服务。那么如果没有设置的话,其他机器是无法访问的。 设置才能够让其他机器访问到那里。

[root@server ~]# systemctl start httpd
[root@server ~]# cat > /var/www/html/index.html < How are you ?
> I'm fine!
> EOF
[root@server ~]# curl 127.0.0.1
How are you ?
I'm fine!
//此时其他机器是访问不了的。
[root@work ~]# curl 192.168.1.60
curl: (7) Failed connect to 192.168.1.60:80; No route to host

可以来添加一下规则,说明一下,这里仅仅只是为了练习添加规则,通常只是开启80端口即可。

[root@server ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source
address=192.168.1.200 port port=80 protocol=tcp accept' --permanent
success
[root@server ~]# firewall-cmd --reload
success

然后再用客户端,就可以访问了。

[root@work ~]# curl 192.168.1.60
How are you ?
I'm fine

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/797435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存