//
首先在
SERVER
端操作
安装
yum -y install targetd targetcli
重启程序
systemctl start target
systemctl enable target
设置防火墙
firewall-cmd --add-port=3260/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
执行targetcli
yum install python-rtslib -y
targetcli
server端
1
、指定要发布的磁盘(块设备
LUN
)
/> /backstores/block create server0.disk1 /dev/sdc
2
、创建
iqn
名字即创建
ISCSI
对象。
/> /iscsi create iqn.2020-05.com.bdqn:disk1
3
、设置
ACL
即将
ISCSI
对象与客户端
IP
或主机名绑定
/> /iscsi/iqn.2020-05.com.bdqn:disk1/tpg1/acls create iqn.2020- 05.com.bdqn:client1
4
、创建
LUN
并绑定块
/> /iscsi/iqn.2020-05.com.bdqn:disk1/tpg1/luns create /backstores/block/server0.disk1
Client
端
1
、安装工具
yum -y install iscsi-initiator-utils
2
、给
initiator
命名
vim /etc/iscsi/initiatorname.iscsi
3
、启动服务
systemctl start iscsi
systemctl enable iscsi
systemctl status iscsi
4
、发现存储
iscsiadm -m discovery -t st -p 192.168.1.60
5
、登录存储
/
连接
target
iscsiadm -m discovery -t st -p 192.168.1.60 -l
6
、验证
iscsi
连接,查看是否得到外界硬盘
lsscsi
//
然后就可以像操作本地磁盘一样来操作
iscsi
磁盘 了。
gdisk /dev/sdb
partprobe /dev/sdb
cat /proc/partitions
//
这里将
/dev/sdb1
分区挂载到
/mnt/iscsi
目录中使用。
mkdir /mnt/iscsi
mkfs.xfs /dev/sdb1
mount /dev/sdb1 /mnt/iscsi/
mount | tail -1
df -hT /mnt/iscsi/
//
如果加入开机自动挂载,需要在挂载选项中添加
_netdev
选项
vim /etc/fstab
/dev/sdb1 /mnt/iscsi xfs defaults,_netdev
0 0
mount -a
再次提醒
:iscsi
,网络存储,经过网络,那么就必须要注意安全。这里注意是以防火墙来体现安全。
可以再开一台虚拟机。当做
iscsi
客户端,看看是否能够发现
iscsi
存储。
yum install iscsi*
systemctl start iscsi
iscsiadm -m discovery -t st -p 192.168.1.60
//0.0.0.0 是什么意思?是所以,所以我们把0.0.0.0改成 对应的客户端的IP就可以了。
targetcli
systemctl restart target.service
这个时候,再用另一个台去访问就访问不到了。
iscsiadm -m discovery -t st -p 192.168.1.60
//
查看状态
systemctl status firewalld
//
查看开放端口
firewall-cmd --zone=public --list-ports
然后我们就要想,怎么能够添加只允许的客户端
IP
。使用防火墙富规则来实现
firewall-cmd --add-rich-rule='rule family=ipv4 source
firewall-cmd --reload
firewall-cmd --list-rich-rules
//
那么现在,我们的服务器同时有开启了
httpd
服务。那么如果没有设置的话,其他机器是无法访问的。
怎么设置才能够让其他机器访问到那?
systemctl start httpd
cat > /var/www/html/index.html <<EOF
curl 127.0.0.1
//
此时其他机器是访问不了的
[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!