iSCSI( Internet Small Computer System Interface 互聯網小型計算機系統接口)是由IBM 下屬的兩大研發機構一一加利福尼亞AImaden和以色列Haifa研究中心共同開發的,是一個供硬件設備使用的、可在IP協議上層運行的SCSI指令集,是一種開放的基於IP協議的工業技術標準。該協議能夠用TCP/IP對SCSI指令進行封裝,使得這些指令可以經過基於IP網絡進行傳輸,從而實現SCSI 和TCP/IP協議的鏈接。對於局域網環境中的用戶來講,採用該標準只須要很少的投資就能夠方便、快捷地對信息和數據進行交互式傳輸及管理。node
iSCSI技術是一種新儲存技術,該技術是將現有SCSI接口與以太網絡(Ethernet)技術結合,使服務器可與使用IP網絡的儲存裝置互相交換資料。linux
設備由 SCSI 總線鏈接。iSCSI 的主要功能是在 TCP/IP 網絡上的主機系統(啓動器 initiator)和存儲設備(目標器 target)之間進行大量數據的封裝和可靠傳輸過程。此外,iSCSI 提供了在 IP 網絡封裝 SCSI 命令,且以TCP/IP協議傳輸shell
iSCSI:Internet 小型計算機系統接口 (iSCSI:Internet Small Computer System Interface) Internet 小型計算機系統接口(iSCSI)是一種基於 TCP/IP 的協議,用來創建和管理 IP 存儲設備、主機和客戶機等之間的相互鏈接,並建立存儲區域網絡(SAN)。json
SAN網絡:Storage Area Network 存儲區域網絡,多采用高速光纖通道,對速率、冗餘性要求高。使用iscsi存儲協議,塊級傳輸。vim
NAS網絡:Network Attachment Storage,網絡附件存儲,採用普通以太網,對速率、冗餘無特別要求,使用NFS、CIFS共享協議,文件級傳輸。windows
SAN和NAS的區別:1.SAN通常特指存儲網絡的構建方式,NAS通常特指產品。bash
SAN有單獨的存儲網絡,NAS使用現有網絡,家庭網絡存儲設備:FREENAS,用的是FREEBSD系統服務器
NFS 是以文件爲單位的,共享出去的是文件
ISCSI是以block爲單位,共享出去的是設備,端口:3260/tcp
網絡
iSCSI 網絡存儲,在工做上分爲服務端(target)和客戶端(initiator).iSCSI服務端用於存放硬盤存儲資源的服務器,可以爲用戶提供可用的存儲資源,iSCSI客戶端則是用戶使用的軟件,用於訪問遠程服務端的存儲資源.併發
1.經過yum安裝iSCSI服務端,此處已安裝成功,略過本步驟
[root@localhost ~]# yum install -y targetd targetcli Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager. Package targetd-0.8.6-1.el7.noarch already installed and latest version Package targetcli-2.1.fb46-1.el7.noarch already installed and latest version Nothing to do
2.安裝成功後,手動啓動iSCSI服務,並設置開機自啓動 (注意:iSCSI服務程序爲targetd)
[root@localhost ~]# systemctl restart targetd [root@localhost ~]# systemctl enable targetd
3.查看iSCSI服務端共享資源,targetcli是用於管理iSCSI服務的專用命令,在執行命令是可看到交互界面.
[root@localhost ~]# targetcli Warning: Could not load preferences file /root/.targetcli/prefs.bin. targetcli shell version 2.1.fb46 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] />
4.進入/backstores/block共享設備位置,並建立共享設備名稱 (注意:/backstores/block是iSCSI服務端配置共享設備的位置)
/> cd backstores/block #進入共享設備位置 /backstores/block> create disk0 /dev/sdb #建立共享設備名稱 此處將 /dev/sdb 加入到設備中命名爲disk0 Created block storage object disk0 using /dev/sdb. /backstores/block> cd / #返回根 /> ls o- / ............................................................. [...] o- backstores .................................................. [...] | o- block ..................................................... [Storage Objects: 1] | | o- disk0 ................................................... [/dev/sdb (20.0GiB) write-thru deactivated] | | o- alua .................................................. [ALUA Groups: 1] | | o- default_tg_pt_gp .................................... [ALUA state: Active/optimized] | o- fileio .................................................... [Storage Objects: 0] | o- pscsi ..................................................... [Storage Objects: 0] | o- ramdisk ................................................... [Storage Objects: 0] o- iscsi ....................................................... [Targets: 0] o- loopback .................................................... [Targets: 0] />
5.建立iSCSI target名稱及配置共享資源,iSCSI target 名稱是由系統自動生成的,這是一串用於描述共享資源的惟一字符串
/> cd iscsi #進入iSCSI目錄 /iscsi> create #建立target標籤 Created target iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260. /iscsi> /iscsi> cd iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8/ #進入上面的標籤中 /iscsi/iqn.20....8c7dcc63aea8> ls #查看標籤內容 o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 ........ [TPGs: 1] o- tpg1 ............................................................. [no-gen-acls, no-auth] o- acls ........................................................... [ACLs: 0] o- luns ........................................................... [LUNs: 0] o- portals ........................................................ [Portals: 1] o- 0.0.0.0:3260 ................................................. [OK] /iscsi/iqn.20....8c7dcc63aea8> cd tpg1/luns #進入tpg目錄 /iscsi/iqn.20...ea8/tpg1/luns> create /backstores/block/disk0 #標籤與設備綁定 Created LUN 0. /iscsi/iqn.20...ea8/tpg1/luns>
6.配置訪問控制列表(ACL),iSCSI設備無需密碼進行驗證,只需知道標籤名稱便可經過,所以須要在iSCSI服務端的配置文件中寫入一串可以驗證信息的名稱,這裏推薦在系統生成的標籤後面加上標識符,:client參數,保證標籤惟一性,同時方便區別和管理
/> cd iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 #進入指定標籤 /iscsi/iqn.20....8c7dcc63aea8> cd tpg1/acls #進入ACL配置列表 /iscsi/iqn.20...ea8/tpg1/acls> create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client #建立用於掛載的標籤 Created Node ACL for iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client Created mapped LUN 0. /iscsi/iqn.20...ea8/tpg1/acls>
7.設置iSCSI服務器的監聽IP地址和端口號,即在portals參數目錄中寫上服務器的IP地址,接下來系統會自動開啓服務器192.168.1.20的3260號端口,爲外部提供共享存儲服務
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8/ #進入操做的標籤 /iscsi/iqn.20....8c7dcc63aea8> cd tpg1/portals/ #進入端口配置 /iscsi/iqn.20.../tpg1/portals> ls o- portals ...................................................................... [Portals: 1] o- 0.0.0.0:3260 ............................................................... [OK] /iscsi/iqn.20.../tpg1/portals> /iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260 #刪除原有配置 Deleted network portal 0.0.0.0:3260 /iscsi/iqn.20.../tpg1/portals> create 192.168.1.20 #建立偵聽本機 Using default IP port 3260 Created network portal 192.168.1.20:3260. /iscsi/iqn.20.../tpg1/portals> ls o- portals ...................................................................... [Portals: 1] o- 192.168.1.20:3260 .......................................................... [OK] /iscsi/iqn.20.../tpg1/portals>
8.配置所有穩當後檢查一下,沒問題的話保存.
/iscsi/iqn.20.../tpg1/portals> cd / /> /> ls o- / ................................................................... [...] o- backstores ........................................................ [...] | o- block ........................................................... [Storage Objects: 1] | | o- disk0 ......................................................... [/dev/sdb (20.0GiB) write-thru activated] #磁盤名稱 | | o- alua ........................................................ [ALUA Groups: 1] | | o- default_tg_pt_gp .......................................... [ALUA state: Active/optimized] | o- fileio .......................................................... [Storage Objects: 0] | o- pscsi ........................................................... [Storage Objects: 0] | o- ramdisk ......................................................... [Storage Objects: 0] o- iscsi ............................................................. [Targets: 1] | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 ..... [TPGs: 1] #標籤名稱 | o- tpg1 .......................................................... [no-gen-acls, no-auth] | o- acls ......................................................................... [ACLs: 1] | | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client ......... [Mapped LUNs: 1] #自定義標籤 | | o- mapped_lun0 .............................................................. [lun0 block/disk0 (rw)] | o- luns ......................................................................... [LUNs: 1] | | o- lun0 ..................................................... [block/disk0 (/dev/sdb) (default_tg_pt_gp)] | o- portals ...................................................................... [Portals: 1] | o- 192.168.1.20: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 [root@localhost ~]#
9.重啓SCSI服務,到此服務器已經配置完畢
[root@localhost ~]# systemctl restart targetd [root@localhost ~]# systemctl enable targetd
1.安裝iSCSI客戶端組件,在RHEL7系統中已經默認集成,若是沒有請執行如下步驟,此處就略過
[root@localhost ~]# yum install -y iscsi-initiator-utils iscsi-initiator-utils-iscsiuio Loaded plugins: product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager . Package iscsi-initiator-utils-6.2.0.874-7.el7.x86_64 already installed and latest version Package iscsi-initiator-utils-iscsiuio-6.2.0.874-7.el7.x86_64 already installed and latest version Nothing to do
2.編輯iSCSI客戶端中的initiator名稱文件,把服務端的訪問控制列表名稱填寫進來,而後重啓iscsid服務程序,並將其加入到開機自啓動列表
[root@localhost ~]# vim /etc/iscsi/initiatorname.iscsi [root@localhost ~]# [root@localhost ~]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8:client [root@localhost ~]# systemctl restart iscsid [root@localhost ~]# systemctl enable iscsid
3.發現iSCSI服務端存儲資源,其中:-m discovery 參數的目的是掃描並發現存儲資源,-t st 參數爲執行掃描操做的類型,-p 參數後爲iSCSI服務端的IP地址
[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.1.20 #下圖顯示,找到一個標籤地址 192.168.1.20:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 [root@localhost ~]#
4.接下來準備登錄iSCSI服務器,其中:-m node 參數爲將客戶端主機做爲一臺節點服務器,-T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 參數爲要使用的存儲標籤,-p 後面爲iSCSI服務器的IP地址, --login 參數爲登錄服務器,若是加 -u參數爲卸載掛載資源
[root@localhost ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8 -p 192.168.1.20 --login Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8, portal: 192.168.1.20,3260] (multiple) Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.8c7dcc63aea8, portal: 192.168.1.20,3260] successful.
5.此時在iSCSI客戶端上會多出一個/dev/sdb磁盤設備文件,接下來咱們直接格式化掛在到/network-disk目錄下
root@localhost ~]# ll /dev/sd* brw-rw----. 1 root disk 8, 0 Nov 4 11:45 /dev/sda brw-rw----. 1 root disk 8, 1 Nov 4 11:45 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 4 11:45 /dev/sda2 brw-rw----. 1 root disk 8, 16 Nov 4 12:06 /dev/sdb #此處就是遠程的磁盤 [root@localhost ~]# mkfs.xfs /dev/sdb #格式化這個設備 meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=5242880, 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@localhost ~]# mkdir /network-disk #建立掛載目錄 [root@localhost ~]# mount /dev/sdb /network-disk/ #掛載設備 [root@localhost ~]# [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 17G 1.2G 16G 7% / devtmpfs 98M 0 98M 0% /dev tmpfs 110M 0 110M 0% /dev/shm /dev/sda1 1014M 130M 885M 13% /boot /dev/sr0 4.4G 4.4G 0 100% /mnt /dev/sdb 20G 33M 20G 1% /network-disk
iSCSI客戶端通過以上步驟以後,這個設備文件就能夠像使用本地磁盤文件同樣的操做啦
[拓展:配置自動掛載]
因爲/dev/sdb/是一個網絡設備,而iSCSI是基於TCP/IP網絡傳輸數據的,所以在配置自動掛載是應該加入_netdev參數,說明其是一個網絡設備
[root@localhost /]# ll /dev/disk/by-uuid/ total 0 lrwxrwxrwx. 1 root root 10 Nov 4 11:45 12b3708e-7ca4-4911-bfa2-57b85960e8e5 -> ../../dm-0 lrwxrwxrwx. 1 root root 9 Nov 4 11:45 2018-03-22-19-04-59-00 -> ../../sr0 lrwxrwxrwx. 1 root root 10 Nov 4 11:45 3d4eea6b-1db9-4d30-9174-bfac6faa4cab -> ../../sda1 lrwxrwxrwx. 1 root root 10 Nov 4 11:45 e791c0bf-f6e9-4843-b18d-be40cf3964c2 -> ../../dm-1 lrwxrwxrwx. 1 root root 9 Nov 4 12:08 ff233cc4-2255-4973-a686-9d394384faf6 -> ../../sdb [root@localhost /]# vim /etc/fstab [root@localhost /]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Sat Oct 13 12:32:13 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/rhel-root / xfs defaults 0 0 UUID=3d4eea6b-1db9-4d30-9174-bfac6faa4cab /boot xfs defaults 0 0 UUID=ff233cc4-2255-4973-a686-9d394384faf6 /network-disk xfs defaults,_netdev 0 0 [root@localhost /]# mount -a
1.單擊控制面板 --> 管理工具 --> iSCSI發起程序
2.在目標選項卡 --> 輸入服務器IP地址 --> 單擊快速鏈接
3.選擇配置選項卡 --> 單擊更改 --> 在標籤末尾加上自定義的字符,此處爲:client --> 單擊肯定
4.單擊目標選項卡 --> 單擊下方的鏈接按鈕
5.單擊此電腦 --> 右鍵選擇管理 --> 選擇磁盤管理 --> 便可看到磁盤信息
1.配置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum -y install epel-release
2.安裝相應軟件
yum install -y scsi-target-utils
3.添加兩塊硬盤,建立LVM邏輯卷整合磁盤空間
pvcreate /dev/sdb /dev/sdc vgcreate my_vg /dev/sdb /dev/sdc lvcreate -L 5G -n my_lv my_vg mkfs.ext4 /dev/my_vg/my_lv
4.建立IQN存儲標籤
tgtadm -L iscsi -o new -m target -t 1 -T iqn.2018-1.com.lyshark.www:my_lvm #建立標籤 tgtadm –L iscsi –o show –m target #查到標籤 ------------------------------------------------------------------------- [參數說明] -L #指定操做類型爲iscsi -O #指定爲new新建 -m #指定服務器 -t #標籤編號 -T #指定域名:注意要反寫 -l #指定lun的ID號 -t #指定客戶機的地址<如 –l 192.168.1.1> -------------------------------------------------------------------------
5.綁定存儲資源
tgtadm -L iscsi -o new -m lu -t 1 -l 1 -b /dev/my_vg/my_lv #綁定存儲資源 tgtadm -L iscsi -o show -m target #再次查看
6.設置權限容許誰來訪問
tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.1.1 #容許192.168.1.1訪問 ------------------------------------------------------------------------- #注:若是想讓結果永久生效要寫入配置文件,<只須要這一步所有搞定> vim /etc/tgt/targets.conf <target iqn.2018-01.com.lyshark.www:my_lvm> #指定標籤名<my_lvm> backing-store /dev/my_vg/my_lv #服務器共享的資源 initiator-address 192.168.1.1 #容許的登錄客戶端 </target> -------------------------------------------------------------------------
7.啓動並設置開機自啓動
systemctl restart tgtd chkconfig tgtd on
1.在客戶端安裝相應軟件
yum install -y iscsi-initiator-utils systemctl restart iscsid
2.掃描服務端可用節點
iscsiadm -m discovery -t sendtargets -p 192.168.1.1 #指定服務器IP
3. <掛載 卸載> 存儲節點到客戶端
iscsiadm -m node -T iqn.2018-01.com.lyshark.www:my_lvm --login #掛載 iscsiadm -m node -T iqn.2018-01.com.lyshark.www:my_lvm --logout #卸載
4.客戶端查看網絡驅動器
[root@localhost ~] #fdisk -l Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
5.格式化與掛載
mkfs.ext4 /dev/sdb mkdir /ghost/ mount /dev/sdb /ghost/
6.配置開機自動掛載
vim /etc/fstab [寫入內容] /dev/sdb /ghost ext4 defaults,_netdev 0 0 mount -a #從新掛載