iSCSI利用了TCP/IP的port 860 和 3260 作為溝通的渠道。透過兩部計算機之間利用iSCSI的協議來交換SCSI命令,讓計算機可以透過高速的局域網集線來把SAN模擬成為本地的儲存裝置。
服務器:Centos Linux 8.1.1911
iscsi target使用磁盤:/dec/sdb 5G
1、軟件安裝
服務器端:targetcli
yum install targetcli -y
客戶端:iscsi-initiator
yum install iscsi-initiator* –y
2、服務器端配置
targetcli 進入交互模式
target的名字規范:iqn.yyyy-mm.com.server.www:位置1.位置2
[root@filesystem ~]# targetcli targetcli shell version 2.1.fb49 Copyright 2011-2013 by Datera, Inc and others. For help on commands, type 'help'. /> /backstores/block create name=disk1 dev=/dev/sdb Created block storage object disk1 using /dev/sdb. /> /iscsi create iqn.2020-06.com.server.filesystem:house1.disk1 Created target iqn.2020-06.com.server.filesystem:house1.disk1. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260. /> /iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/acls create iqn.2020-06.com.server.node2 Created Node ACL for iqn.2020-06.com.server.node2 /> /iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/luns create /backstores/block/disk1 Created LUN 0. Created LUN 0->0 mapping in node ACL iqn.2020-06.com.server.node2 /> /iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/portals/ create 192.168.10.0 3260 Using default IP port 3260 Could not create NetworkPortal in configFS /> /iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/ set attribute authentication=0 Parameter authentication is now '0'. /> /iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/ set attribute generate_node_acls=0 Parameter generate_node_acls is now '0'. /> saveconfig Last 10 configs saved in /etc/target/backup/. Configuration saved to /etc/target/saveconfig.json
/backstores/block create name=disk1 dev=/dev/sdb
定義一個本地的塊設備disk1
/iscsi create iqn.2020-06.com.server.filesystem:house1.disk1
定義一個target
/iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/luns create /backstores/block/disk1
在 iqn.2020-06.com.server.filesystem:house1.disk1 這個target里將之前的塊設備共享出去
/iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/acls create iqn.2020-06.com.server.node2
創建基於 iqn 的 acl:允許該名字的客戶端訪問本 iscsi 的 tagert
/iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/portals/ create 192.168.10.0 3260
定義 target 的入口(客戶使用什么 IP 和端口訪問) 默認定義了0.0.0.0 3260
/iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/ set attribute authentication=0
關閉帳號驗證
/iscsi/iqn.2020-06.com.server.filesystem:house1.disk1/tpg1/ set attribute generate_node_acls=0
使用自定義的 acl 實現節點訪問限制
查看配置
關閉防火牆
[root@filesystem ~]# systemctl stop firewalld [root@filesystem ~]# systemctl disable firewalld [root@filesystem ~]#
啟動服務,並設置開機自啟、關閉selinux
[root@filesystem ~]# systemctl enable target Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service. [root@filesystem ~]# systemctl start target [root@filesystem ~]# setenforce 0 [root@filesystem ~]# getenforce Permissive [root@filesystem ~]#
永久關閉selinux
[root@filesystem ~]# vim /etc/selinux/config [root@filesystem ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # SELINUXTYPE= can take one of these three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted [root@filesystem ~]#
2、Linux客戶端連接
Centos 8.1.1911默認安裝有iscsi-initiator程序
修改客戶端連接的名稱
[root@node2 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:b3de1b81d843
[root@node2 ~]# echo "InitiatorName=iqn.2020-06.com.server.node2" > /etc/iscsi/initiatorname.iscsi
[root@node2 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2020-06.com.server.node2
[root@node2 ~]#
iscsiadmin是客戶端的命令
發現
[root@node2 ~]# iscsiadm -m discovery -t st -p 192.168.10.159 192.168.10.159:3260,1 iqn.2020-06.com.server.filesystem:house1.disk1 [root@node2 ~]#
登錄
[root@node2 ~]# iscsiadm -m node -l Logging in to [iface: default, target: iqn.2020-06.com.server.filesystem:house1.disk1, portal: 192.168.10.159,3260] Login to [iface: default, target: iqn.2020-06.com.server.filesystem:house1.disk1, portal: 192.168.10.159,3260] successful. [root@node2 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─cl-root 253:0 0 17G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 5G 0 disk sr0 11:0 1 7G 0 rom /run/media/root/CentOS-8-1-1911-x86_64-dvd [root@node2 ~]#
我們發現多了一個sdb,我們格式化掛載即可使用。
[root@node2 ~]# mkfs.ext4 /dev/sdb mke2fs 1.44.6 (5-Mar-2019) /dev/sdb 有一個 ext4 文件系統 創建於 Wed Jun 3 05:38:41 2020 創建含有 1310720 個塊(每塊 4k)和 327680 個inode的文件系統 文件系統UUID:104b7e23-cb76-4842-a969-29a9e7a198ce 超級塊的備份存儲於下列塊: 32768, 98304, 163840, 229376, 294912, 819200, 884736 正在分配組表: 完成 正在寫入inode表: 完成 創建日志(16384 個塊)完成 寫入超級塊和文件系統賬戶統計信息: 已完成 [root@node2 ~]# ll /dev/sdb brw-rw----. 1 root disk 8, 16 6月 3 05:40 /dev/sdb [root@node2 ~]#
掛載使用
[root@node2 ~]#
[root@node2 ~]# mkdir /mnt/iscsi_mountdisk1
[root@node2 ~]# mount /dev/sdb /mnt/iscsi_mountdisk1/
[root@node2 ~]# cd /mnt/iscsi_mountdisk1/
[root@node2 iscsi_mountdisk1]# ls
lost+found
[root@node2 iscsi_mountdisk1]# echo "this is iscsi disk1" > readme.txt
[root@node2 iscsi_mountdisk1]# ls
lost+found readme.txt
3、Windows客戶端
修改連接名稱,並進行發現
連接目標並掛載
格式化並使用
打開磁盤管理器
磁盤1紅框區域右鍵選擇新建簡單卷,然后一直默認下一步。
格式化完成打開我的電腦
多出來一塊5G的新建卷E,使用起來很方便。
思考:
一個target,如何讓多個客戶端進行連接使用,存儲文件時會沖突嗎?
讀書和健身總有一個在路上