? ??????iSCSI 技術(shù)實現(xiàn)了物理硬盤設(shè)備與 TCP/IP 網(wǎng)絡(luò)協(xié)議的相互結(jié)合捡需,使得用戶可以通過互聯(lián)網(wǎng)方便地訪問遠程機房提供的共享存儲資源疮胖。
? ? ? ? 一这吻、iSCSI 技術(shù)概述
? ??????硬盤是計算機硬件設(shè)備中重要的組成部分之一筛婉, 硬盤存儲設(shè)備讀寫速度的快慢也會對服務(wù)器的整體性能造成影響户侥。前面章節(jié)講解的硬盤存儲結(jié)構(gòu)却邓、RAID 磁盤陣列技術(shù)以及 LVM 技術(shù)等都是用于存儲設(shè)備的技術(shù)硕糊,盡管這些技術(shù)有軟件層面和硬件層面之分,但是它們都旨在解決硬盤存儲設(shè)備的讀寫速度問題腊徙,或者竭力保障存儲數(shù)據(jù)的安全简十。
? ??????為了進一步提升硬盤存儲設(shè)備的讀寫速度和性能,人們一直在努力改進物理硬盤設(shè)備的接口協(xié)議撬腾。當(dāng)前的硬盤接口類型主要有 IDE螟蝙、SCSI 和 SATA 這 3 種。
? ??????? IDE 是一種成熟穩(wěn)定民傻、價格便宜的并行傳輸接口胰默。
????????? SATA 是一種傳輸速度更快、數(shù)據(jù)校驗更完整的串行傳輸接口漓踢。
????????? SCSI 是一種用于計算機和硬盤牵署、光驅(qū)等設(shè)備之間系統(tǒng)級接口的通用標(biāo)準(zhǔn),具有系統(tǒng)資源占用率低喧半、轉(zhuǎn)速高奴迅、傳輸速度快等優(yōu)點。
? ??????不論使用什么類型的硬盤接口挺据, 硬盤上的數(shù)據(jù)總是要通過計算機主板上的總線與 CPU取具、內(nèi)存設(shè)備進行數(shù)據(jù)交換, 這種物理環(huán)境上的限制給硬盤資源的共享帶來了各種不便扁耐。 后來暇检,IBM 公司開始動手研發(fā)基于 TCP/IP 協(xié)議和 SCSI 接口協(xié)議的新型存儲技術(shù),這也就是我們目前能看到的互聯(lián)網(wǎng)小型計算機系統(tǒng)接口(iSCSI做葵,Internet Small Computer SystemInterface) 占哟。這是一種將 SCSI 接口與以太網(wǎng)技術(shù)相結(jié)合的新型存儲技術(shù),可以用來在網(wǎng)絡(luò)中傳輸 SCSI 接口的命令和數(shù)據(jù)酿矢。這樣榨乎,不僅克服了傳統(tǒng) SCSI 接口設(shè)備的物理局限性,實現(xiàn)了跨區(qū)域的存儲資源共享瘫筐,還可以在不停機的狀態(tài)下擴展存儲容量蜜暑。
? ??????為了讓各位讀者做到知其然,知其所以然策肝,以便在工作中靈活使用這項技術(shù)肛捍,下面將講解一下 iSCSI 技術(shù)在生產(chǎn)環(huán)境中的優(yōu)勢和劣勢隐绵。首先,iSCSI 存儲技術(shù)非常便捷拙毫,在訪問存儲資源的形式上發(fā)生了很大變化依许,擺脫了物理環(huán)境的限制,同時還可以把存儲資源分給多個服務(wù)器共同使用缀蹄,因此是一種非常推薦使用的存儲技術(shù)峭跳。但是,iSCSI 存儲技術(shù)受到了網(wǎng)速的制約缺前。以往蛀醉,硬盤設(shè)備直接通過主板上的總線進行數(shù)據(jù)傳輸,現(xiàn)在則需要讓互聯(lián)網(wǎng)作為數(shù)據(jù)傳輸?shù)妮d體和通道衅码,因此傳輸速率和穩(wěn)定性是 iSCSI 技術(shù)的瓶頸拯刁。隨著網(wǎng)絡(luò)技術(shù)的持續(xù)發(fā)展,相信 iSCSI 技術(shù)也會隨之得以改善逝段。
? ??????既然要通過以太網(wǎng)來傳輸硬盤設(shè)備上的數(shù)據(jù)垛玻,那么數(shù)據(jù)是通過網(wǎng)卡傳入到計算機中的么?這就有必要向大家介紹 iSCSI-HBA 卡了(見圖 17-1) 惹恃。與一般的網(wǎng)卡不同(連接網(wǎng)絡(luò)總線和內(nèi)存夭谤,供計算機上網(wǎng)使用) ,iSCSI-HBA 卡連接的則是 SCSI 接口或 FC(光纖通道)總線和內(nèi)存巫糙, 專門用于在主機之間交換存儲數(shù)據(jù), 其使用的協(xié)議也與一般網(wǎng)卡有本質(zhì)的不同颊乘。 運行 Linux系統(tǒng)的服務(wù)器會基于 iSCSI 協(xié)議把硬盤設(shè)備命令與數(shù)據(jù)打包成標(biāo)準(zhǔn)的 TCP/IP 數(shù)據(jù)包参淹,然后通過以太網(wǎng)傳輸?shù)侥繕?biāo)存儲設(shè)備, 而當(dāng)目標(biāo)存儲設(shè)備接收到這些數(shù)據(jù)包后乏悄, 還需要基于 iSCSI 協(xié)議把 TCP/IP 數(shù)據(jù)包解壓成硬盤設(shè)備命令與數(shù)據(jù)浙值。
? ? ? ? 二、創(chuàng)建Raid磁盤陣列
? ??????既然要使用 iSCSI 存儲技術(shù)為遠程用戶提供共享存儲資源檩小,首先要保障用于存放資源的服務(wù)器的穩(wěn)定性與可用性开呐,否則一旦在使用過程中出現(xiàn)故障,則維護的難度相較于本地硬盤設(shè)備要更加復(fù)雜规求、困難筐付。因此推薦各位讀者來部署 RAID 磁盤陣列組,確保數(shù)據(jù)的安全性阻肿。下面以配置 RAID 5 磁盤陣列組為例進行講解瓦戚。考慮到之前章節(jié)已經(jīng)事無巨細地講解了 RAID 磁盤陣列技術(shù)和配置方法丛塌,因此本節(jié)不會再重復(fù)介紹相關(guān)參數(shù)的意義以及用途较解,忘記了的讀者可以翻回去看一下畜疾。
? ??????首先在虛擬機中添加 4 塊新硬盤, 用于創(chuàng)建 RAID 5 磁盤陣列和備份盤印衔, 如圖所示啡捶。
? ??????啟動虛擬機系統(tǒng),使用 mdadm 命令創(chuàng)建 RAID 磁盤陣列奸焙。其中瞎暑,-Cv 參數(shù)為創(chuàng)建陣列并顯示過程,/dev/md0 為生成的陣列組名稱忿偷,-n 3 參數(shù)為創(chuàng)建 RAID 5 磁盤陣列所需的硬盤個數(shù)金顿,-l 5 參數(shù)為 RAID 磁盤陣列的級別,-x 1 參數(shù)為磁盤陣列的備份盤個數(shù)鲤桥。在命令后面要逐一寫上使用的硬盤名稱揍拆。另外,還可以使用通配符來指定硬盤設(shè)備的名稱茶凳,有興趣的讀者可以試一下嫂拴。
# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954624K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
? ??????在上述命令成功執(zhí)行之后,得到一塊名稱為/dev/md0 的新設(shè)備贮喧,這是一塊 RAID 5 級別的磁盤陣列筒狠,并且還有一塊備份盤為硬盤數(shù)據(jù)保駕護航。大家可使用 mdadm -D 命令來查看設(shè)備的詳細信息箱沦。 另外辩恼, 由于在使用遠程設(shè)備時極有可能出現(xiàn)設(shè)備識別順序發(fā)生變化的情況,因此谓形,如果直接在 fstab 掛載配置文件中寫入/dev/sdb灶伊、/dev/sdc 等設(shè)備名稱的話,就有可能在下一次掛載了錯誤的存儲設(shè)備寒跳。而 UUID 值是設(shè)備的唯一標(biāo)識符聘萨,可以用于精確地區(qū)分本地或遠程設(shè)備。于是我們可以把這個值記錄下來童太,一會兒準(zhǔn)備填寫到掛載配置文件中米辐。
# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Sep 24 21:59:57 2017
Raid Level : raid5
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Sep 24 22:02:23 2017
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Name : linuxprobe.com:0 (local to host linuxprobe.com)
UUID : 3370f643:c10efd6a:44e91f2a:20c71f3e
Events : 26
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde
? ? ? ? 三、配置 iSCSI 服務(wù)端
? ??????iSCSI 技術(shù)在工作形式上分為服務(wù)端(target)與客戶端(initiator) 书释。iSCSI 服務(wù)端即用于存放硬盤存儲資源的服務(wù)器翘贮,它作為前面創(chuàng)建的 RAID 磁盤陣列的存儲端,能夠為用戶提供可用的存儲資源征冷。iSCSI 客戶端則是用戶使用的軟件择膝,用于訪問遠程服務(wù)端的存儲資源。下面按照表來配置 iSCSI 服務(wù)端和客戶端所用的 IP 地址检激。
? ? ? ? 主機名稱? ? ? ? ? ? ? ? 操作系統(tǒng)? ? ? ? ? ? ? ? IP地址
? ??????iSCSI 服務(wù)端 ???????? CentOS7? ? ? ? ? ? ? ? ? 192.168.1.145
????????iSCSI 客戶端? ????????CentOS7? ????????????????192.168.1.155
? ? ? ? 1.配置好 Yum 軟件倉庫后安裝 iSCSI 服務(wù)端程序以及配置命令工具肴捉。通過在 yum命令的后面添加-y 參數(shù)腹侣,在安裝過程中就不需要再進行手動確認(rèn)了:
# yum -y install targetd targetcli
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,
? ? ? ? ? ? ? : subscription-manager
………………省略部分輸出信息………………
Installing:
targetcli? ? ? ? ? ? ? noarch? ? 2.1.fb46-7.el7? ? ? ? ? ? base? ? ? ? 67 k
targetd? ? ? ? ? ? ? ? noarch? ? 0.8.6-1.el7? ? ? ? ? ? ? ? base? ? ? ? 56 k
Installing for dependencies:
PyYAML? ? ? ? ? ? ? ? x86_64? ? 3.10-11.el7? ? ? ? ? ? ? ? base? ? ? 153 k
libyaml? ? ? ? ? ? ? ? x86_64? ? 0.1.4-11.el7_0? ? ? ? ? ? base? ? ? ? 55 k
lvm2-python-libs? ? ? x86_64? ? 7:2.02.180-10.el7_6.8? ? ? updates? ? 186 k
pyparsing? ? ? ? ? ? ? noarch? ? 1.5.6-9.el7? ? ? ? ? ? ? ? base? ? ? ? 94 k
python-configshell? ? noarch? ? 1:1.1.fb23-5.el7? ? ? ? ? base? ? ? ? 68 k
python-kmod? ? ? ? ? ? x86_64? ? 0.9-4.el7? ? ? ? ? ? ? ? ? base? ? ? ? 57 k
python-rtslib? ? ? ? ? noarch? ? 2.1.fb63-13.el7? ? ? ? ? ? base? ? ? 100 k
python-setproctitle? ? x86_64? ? 1.1.6-5.el7? ? ? ? ? ? ? ? base? ? ? ? 15 k
python-urwid? ? ? ? ? x86_64? ? 1.1.1-3.el7? ? ? ? ? ? ? ? base? ? ? 654 k
Transaction Summary
Install? 2 Packages (+9 Dependent packages)
………………省略部分輸出信息………………
Installed:
? targetcli.noarch 0:2.1.fb46-7.el7? ? ? ? targetd.noarch 0:0.8.6-1.el7? ? ?
Dependency Installed:
? PyYAML.x86_64 0:3.10-11.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? libyaml.x86_64 0:0.1.4-11.el7_0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? lvm2-python-libs.x86_64 7:2.02.180-10.el7_6.8? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? pyparsing.noarch 0:1.5.6-9.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? python-configshell.noarch 1:1.1.fb23-5.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? python-kmod.x86_64 0:0.9-4.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? python-rtslib.noarch 0:2.1.fb63-13.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? python-setproctitle.x86_64 0:1.1.6-5.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? python-urwid.x86_64 0:1.1.1-3.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Complete!
? ??????安裝完成后啟動iSCSI的服務(wù)端程序targetd, 然后把這個服務(wù)程序加入到開機啟動項中齿穗,以便下次在服務(wù)器重啟后依然能夠為用戶提供 iSCSI 共享存儲資源服務(wù):
# systemctl start targetd
# systemctl enable targetd
ln -s '/usr/lib/systemd/system/targetd.service' '/etc/systemd/system/multi-user.
target.wants/targetd.service'
? ? ? ? 2.配置 iSCSI 服務(wù)端共享資源傲隶。targetcli 是用于管理 iSCSI 服務(wù)端存儲資源的專用配置命令,它能夠提供類似于 fdisk 命令的交互式配置功能窃页,將 iSCSI 共享資源的配置內(nèi)容抽象成“目錄”的形式跺株,我們只需將各類配置信息填入到相應(yīng)的“目錄”中即可。這里的難點主要在于認(rèn)識每個“參數(shù)目錄”的作用脖卖。當(dāng)把配置參數(shù)正確地填寫到“目錄”中后乒省,iSCSI 服務(wù)端也可以提供共享資源服務(wù)了。
? ??????在執(zhí)行 targetcli 命令后就能看到交互式的配置界面了畦木。 在該界面中可以使用很多 Linux 命令袖扛, 比如利用 ls 查看目錄參數(shù)的結(jié)構(gòu), 使用 cd 切換到不同的目錄中十籍。 /backstores/block 是 iSCSI服務(wù)端配置共享設(shè)備的位置蛆封。我們需要把剛剛創(chuàng)建的 RAID 5 磁盤陣列 md0 文件加入到配置共享設(shè)備的“資源池”中,并將該文件重新命名為 disk0勾栗,這樣用戶就不會知道是由服務(wù)器中的哪塊硬盤來提供共享存儲資源惨篱,而只會看到一個名為 disk0 的存儲設(shè)備。
# 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]
/> cd /backstores/block
/backstores/block> create disk0 /dev/md0
Created block storage object disk0 using /dev/md0.
/backstores/block> cd /
/> ls
o- / ................... ............................................... [...]
o- backstores ........................................................ [...]
| o- block ........................................... [Storage Objects: 1]
| | o- disk0 .................. [/dev/md0 (40.0GiB) write-thru deactivated]
| o- fileio .......................................... [Storage Objects: 0]
| o- pscsi ........................................... [Storage Objects: 0]
| o- ramdisk ......................................... [Storage Objects: 0]
o- iscsi ..................................................... [Targets: 0]
o- loopback .................................................. [Targets: 0]
? ? ? ? 3.創(chuàng)建 iSCSI target 名稱及配置共享資源围俘。iSCSI target 名稱是由系統(tǒng)自動生成的砸讳,這是一串用于描述共享資源的唯一字符串。稍后用戶在掃描 iSCSI 服務(wù)端時即可看到這個字符串界牡,因此我們不需要記住它绣夺。系統(tǒng)在生成這個 target 名稱后,還會在/iscsi 參數(shù)目錄中創(chuàng)建一個與其字符串同名的新“目錄”用來存放共享資源欢揖。我們需要把前面加入到 iSCSI 共享資源池中的硬盤設(shè)備添加到這個新目錄中,這樣用戶在登錄 iSCSI 服務(wù)端后奋蔚,即可默認(rèn)使用這硬盤設(shè)備提供的共享存儲資源了她混。
/> cd iscsi
/iscsi>
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80.
Created TPG 1.
/iscsi> cd iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80/
/iscsi/iqn.20....d497c356ad80> ls
o- iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80 .... [TPGs: 1]
o- tpg1 ............................................. [no-gen-acls, no-auth]
o- acls ........................................................ [ACLs: 0]
o- luns ........................................................ [LUNs: 0]
o- portals .................................................. [Portals: 0]
/iscsi/iqn.20....d497c356ad80> cd tpg1/luns
/iscsi/iqn.20...d80/tpg1/luns> create /backstores/block/disk0
Created LUN 0.
? ? ? ? 4.設(shè)置訪問控制列表(ACL) 。iSCSI 協(xié)議是通過客戶端名稱進行驗證的泊碑,也就是說坤按,用戶在訪問存儲共享資源時不需要輸入密碼,只要 iSCSI 客戶端的名稱與服務(wù)端中設(shè)置的訪問控制列表中某一名稱條目一致即可馒过,因此需要在 iSCSI 服務(wù)端的配置文件中寫入一串能夠驗證用戶信息的名稱。acls 參數(shù)目錄用于存放能夠訪問 iSCSI 服務(wù)端共享存儲資源的客戶端名稱腹忽。推薦在剛剛系統(tǒng)生成的 iSCSI target 后面追加上類似于:client 的參數(shù)来累,這樣既能保證客戶端的名稱具有唯一性葫录,又非常便于管理和閱讀:
/iscsi/iqn.20...d80/tpg1/luns> cd ..
/iscsi/iqn.20...c356ad80/tpg1> cd acls
/iscsi/iqn.20...d80/tpg1/acls> create iqn.2003-01.org.linux-iscsi.linuxprobe.
x8664:sn.d497c356ad80:client
Created Node ACL for iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:
client
Created mapped LUN 0.
? ? ? ? 5.設(shè)置 iSCSI 服務(wù)端的監(jiān)聽 IP 地址和端口號面粮。位于生產(chǎn)環(huán)境中的服務(wù)器上可能有多塊網(wǎng)卡郁季,那么到底是由哪個網(wǎng)卡或 IP 地址對外提供共享存儲資源呢?這就需要我們在配置文件中手動定義 iSCSI 服務(wù)端的信息凿歼,即在 portals 參數(shù)目錄中寫上服務(wù)器的 IP 地址虐拓。接下來將由系統(tǒng)自動開啟服務(wù)器 192.168.10.10 的 3260 端口將向外提供 iSCSI 共享存儲資源服務(wù):
/iscsi/iqn.20...d80/tpg1/acls> cd ..
/iscsi/iqn.20...c356ad80/tpg1> cd portals
/iscsi/iqn.20.../tpg1/portals> create 192.168.10.10
Using default IP port 3260
Created network portal 192.168.10.10:3260.
? ? ? ? 6.配置妥當(dāng)后檢查配置信息态兴,重啟 iSCSI 服務(wù)端程序并配置防火墻策略绍撞。在參數(shù)文件配置妥當(dāng)后阱驾,可以瀏覽剛剛配置的信息喧枷,確保與下面的信息基本一致。在確認(rèn)信息無誤后輸入 exit 命令來退出配置。注意巍举,千萬不要習(xí)慣性地按 Ctrl + C 組合鍵結(jié)束進程,這樣不會保存配置文件福扬,我們的工作也就白費了俗冻。最后重啟 iSCSI 服務(wù)端程序勤篮,再設(shè)置 firewalld 防火墻策略铺董,使其放行 3260/tcp 端口號的流量顷级。
/iscsi/iqn.20.../tpg1/portals> ls /
o- / ........................... [...]
o- backstores................. [...]
| o- block ................... [Storage Objects: 1]
| | o- disk0 ................. [/dev/md0 (40.0GiB) write-thru activated]
| 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.linuxprobe.x8664:sn.d497c356ad80 ... [TPGs: 1]
| o- tpg1 .................. [no-gen-acls, no-auth]
| o- acls ............................................... [ACLs: 1]
| | o- iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client
[Mapped LUNs: 1]
| | o- mapped_ _lun0 .......................... [lun0 block/disk0 (rw)]
o- luns .................... [LUNs: 1]
| | o- lun0 .............. [block/disk0 (/dev/md0)]
| o- portals ............. [Portals: 1]
| o- 192.168.10.10: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@linuxprobe ~]# systemctl restart targetd
[root@linuxprobe ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[root@linuxprobe ~]# firewall-cmd --reload
success
? ? ? ? 四弓颈、配置 Linux 客戶端
? ??????我們在前面的章節(jié)中已經(jīng)配置了很多 Linux 服務(wù)帽芽, 基本上可以說, 無論是什么服務(wù)恨豁,客戶端的配置步驟都要比服務(wù)端的配置步驟簡單一些嚣镜。在 RHEL 7 系統(tǒng)中,已經(jīng)默認(rèn)安裝了 iSCSI 客戶端服務(wù)程序 initiator橘蜜。如果您的系統(tǒng)沒有安裝的話菊匿,可以使用 Yum 軟件倉庫手動安裝。
?# yum install iscsi-initiator-utils
Loaded plugins: langpacks, product-id, subscription-manager
Package iscsi-initiator-utils-6.2.0.873-21.el7.x86_64 already installed and
latest version
Nothing to do
? ??????前面講到计福,iSCSI 協(xié)議是通過客戶端的名稱來進行驗證跌捆,而該名稱也是 iSCSI 客戶端的唯一標(biāo)識,而且必須與服務(wù)端配置文件中訪問控制列表中的信息一致象颖,否則客戶端在嘗試訪問存儲共享設(shè)備時佩厚,系統(tǒng)會彈出驗證失敗的保存信息。
? ??????下面我們編輯 iSCSI 客戶端中的 initiator 名稱文件说订,把服務(wù)端的訪問控制列表名稱填寫進來抄瓦,然后重啟客戶端 iscsid 服務(wù)程序并將其加入到開機啟動項中:
# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80:client
# systemctl restart iscsid
# systemctl enable iscsid
ln -s '/usr/lib/systemd/system/iscsid.service' '/etc/systemd/system/multi-user.
target.wants/iscsid.service'
? ??????iSCSI 客戶端訪問并使用共享存儲資源的步驟很簡單,只需要記住劉遄老師的一個小口訣 “先發(fā)現(xiàn)陶冷, 再登錄钙姊, 最后掛載并使用” 。 iscsiadm 是用于管理埂伦、 查詢煞额、 插入、 更新或刪除 iSCSI數(shù)據(jù)庫配置文件的命令行工具沾谜,用戶需要先使用這個工具掃描發(fā)現(xiàn)遠程 iSCSI 服務(wù)端膊毁,然后查看找到的服務(wù)端上有哪些可用的共享存儲資源。其中基跑,-m discovery 參數(shù)的目的是掃描并發(fā)現(xiàn)可用的存儲資源婚温,-t st 參數(shù)為執(zhí)行掃描操作的類型,-p 192.168.10.10 參數(shù)為 iSCSI 服務(wù)端的IP 地址:
# iscsiadm -m discovery -t st -p 192.168.10.10
192.168.10.10:3260,1 iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80
? ??????在使用 iscsiadm 命令發(fā)現(xiàn)了遠程服務(wù)器上可用的存儲資源后媳否,接下來準(zhǔn)備登錄 iSCSI 服務(wù)端缭召。 其中栈顷, -m node 參數(shù)為將客戶端所在主機作為一臺節(jié)點服務(wù)器, -T iqn.2003-01. org.linux-iscsi.linuxprobe.x8664:sn.d497c356ad80 參數(shù)為要使用的存儲資源 (大家可以直接復(fù)制前面命令中掃描發(fā)現(xiàn)的結(jié)果嵌巷,以免錄入錯誤) ,-p 192.168.10.10 參數(shù)依然為對方 iSCSI 服務(wù)端的 IP 地址室抽。最后使用--login 或-l 參數(shù)進行登錄驗證搪哪。
# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.linuxprobe.
x8664:sn.d497c356ad80 -p 192.168.10.10 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.linuxprobe.
x8664:sn.d497c356ad80, portal: 192.168.10.10,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:
sn.d497c356ad80, portal: 192.168.10.10,3260] successful.
? ??????在 iSCSI 客戶端成功登錄之后,會在客戶端主機上多出一塊名為/dev/sdb 的設(shè)備文件坪圾。第6 章曾經(jīng)講過晓折,udev 服務(wù)在命名硬盤名稱時,與硬盤插槽是沒有關(guān)系的兽泄。接下來可以像使用本地主機上的硬盤那樣來操作這個設(shè)備文件了漓概。
# file /dev/sdb
/dev/sdb: block special
? ??????下面進入標(biāo)準(zhǔn)的磁盤操作流程〔∩遥考慮到大家已經(jīng)在之前 章節(jié)學(xué)習(xí)了這部分內(nèi)容胃珍,外加這個設(shè)備文件本身只有 40GB 的容量,因此我們不再進行分區(qū)蜓陌,而是直接格式化并掛載使用觅彰。
# mkfs.xfs /dev/sdb
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/sdb isize=256 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# mkdir /iscsi
# mount /dev/sdb /iscsi
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.4G 15G 20% /
devtmpfs 734M 0 734M 0% /dev
tmpfs 742M 176K 742M 1% /dev/shm
tmpfs 742M 8.8M 734M 2% /run
tmpfs 742M 0 742M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/sdb 40G 33M 40G 1% /iscsi
? ??????從此以后,這個設(shè)備文件就如同是客戶端本機主機上的硬盤那樣工作钮热。需要提醒大家的是填抬,由于 udev 服務(wù)是按照系統(tǒng)識別硬盤設(shè)備的順序來命名硬盤設(shè)備的,當(dāng)客戶端主機同時使用多個遠程存儲資源時隧期,如果下一次識別遠程設(shè)備的順序發(fā)生了變化飒责,則客戶端掛載目錄中的文件也將隨之混亂。為了防止發(fā)生這樣的問題仆潮,我們應(yīng)該在/etc/fstab 配置文件中使用設(shè)備的 UUID 唯一標(biāo)識符進行掛載宏蛉,這樣,不論遠程設(shè)備資源的識別順序再怎么變化鸵闪,系統(tǒng)也能正確找到設(shè)備所對應(yīng)的目錄檐晕。blkid 命令用于查看設(shè)備的名稱、文件系統(tǒng)及 UUID蚌讼”倩遥可以使用管道符進行過濾,只顯示與/dev/sdb 設(shè)備相關(guān)的信息:
# blkid | grep /dev/sdb
/dev/sdb: UUID="eb9cbf2f-fce8-413a-b770-8b0f243e8ad6" TYPE="xfs"
? ??????由于/dev/sdb 是一塊網(wǎng)絡(luò)存儲設(shè)備篡石,而 iSCSI 協(xié)議是基于TCP/IP 網(wǎng)絡(luò)傳輸數(shù)據(jù)的芥喇,因此必須在/etc/fstab 配置文件中添加上_netdev 參數(shù),表示當(dāng)系統(tǒng)聯(lián)網(wǎng)后再進行掛載操作凰萨,以免系統(tǒng)開機時間過長或開機失斔渤 :
# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 4 19:26:23 2017
#
# 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 1 1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
/dev/mapper /rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
UUID=eb9cbf2f-fce8-413a-b770-8b0f243e8ad6 /iscsi xfs defaults,_ _netdev 0 0
? ??????如果我們不再需要使用 iSCSI 共享設(shè)備資源了鳖昌,可以用 iscsiadm 命令的-u 參數(shù)將其設(shè)備卸載:
# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.linuxprobe.
x8664:sn.d497c356ad80 -u
Logging out of session [sid: 7, target : iqn.2003-01.org.linux-iscsi.linuxprobe.
x8664:sn.d497c356ad80, portal: 192.168.10.10,3260]
Logout of [sid: 7, target: iqn.2003-01.org.linux-iscsi.linuxprobe.x8664:sn.
d497c356ad80,portal:192.168.10.10,3260] successful.
? ? ? ? 五耍攘、配置 Windows 客戶端
? ??????使用 Windows 系統(tǒng)的客戶端也可以正常訪問 iSCSI 服務(wù)器上的共享存儲資源,而且操作原理及步驟與 Linux 系統(tǒng)的客戶端基本相同霹崎。在進行下面的實驗之前,請先關(guān)閉 Linux 系統(tǒng)客戶端冶忱,以免這兩臺客戶端主機同時使用 iSCSI 共享存儲資源而產(chǎn)生潛在問題尾菇。下面按照下表來配置 iSCSI 服務(wù)器和 Windows 客戶端所用的 IP 地址。
? ? ? ? 主機名稱? ? ? ??? ??????????????????????操作系統(tǒng)? ? ? ??? ??????????????IP地址
? ??????iSCSI 服務(wù)器 ???????? ????????????????RHEL 7 ???????????? ????????????192.168.10.10
? ??????Windows 系統(tǒng)客戶端 ???????? Windows 7 ????????????????????192.168.10.30
? ? ? ? 1.運行 iSCSI 發(fā)起程序囚枪。在 Windows 7 操作系統(tǒng)中已經(jīng)默認(rèn)安裝了 iSCSI 客戶端程序派诬,我們只需在控制面板中找到“系統(tǒng)和安全”標(biāo)簽,然后單擊“管理工具” 链沼,進入到 “管理工具” 頁面后即可看到 “iSCSI 發(fā)起程序” 圖標(biāo)默赂。 雙擊該圖標(biāo)。 在第一次運行 iSCSI發(fā)起程序時括勺,系統(tǒng)會提示“Microsoft iSCSI 服務(wù)端未運行” 缆八,單擊“是”按鈕即可自動啟動并運行 iSCSI 發(fā)起程序,如下圖所示朝刊。
? ? ? ? 2.掃描發(fā)現(xiàn) iSCSI 服務(wù)端上可用的存儲資源耀里。不論是 Windows 系統(tǒng)還是 Linux 系統(tǒng),要想使用 iSCSI 共享存儲資源都必須先進行掃描發(fā)現(xiàn)操作拾氓。運行 iSCSI 發(fā)起程序后在“目標(biāo)”選項卡的“目標(biāo)”文本框中寫入 iSCSI 服務(wù)端的 IP 地址冯挎,然后單擊“快速連接”按鈕,如下圖所示咙鞍。
? ??????在彈出的“快速連接”提示框中可看到共享的硬盤存儲資源房官,單擊“完成”按鈕即可,如下圖所示续滋。
? ??????回到 “目標(biāo)” 選項卡頁面翰守, 可以看到共享存儲資源的名稱已經(jīng)出現(xiàn), 如下圖所示疲酌。
? ? ? ? 3.準(zhǔn)備連接 iSCSI 服務(wù)端的共享存儲資源蜡峰。由于在 iSCSI 服務(wù)端程序上設(shè)置了 ACL,使得只有客戶端名稱與ACL 策略中的名稱保持一致時才能使用遠程存儲資源朗恳, 因此需要在 “配置”選項卡中單擊“更改”按鈕湿颅,把iSCSI 發(fā)起程序的名稱修改為服務(wù)端ACL 所定義的名稱,如下圖所示粥诫。
? ??????在確認(rèn)客戶端發(fā)起程序的名稱修改正確后即可返回到“目標(biāo)”選項卡頁面中油航,然后單擊“連接”按鈕進行連接請求,成功連接到遠程共享存儲資源的頁面如圖所示怀浆。
? ? ? ? 4.訪問 iSCSI 遠程共享存儲資源谊囚。右鍵單擊桌面上的“計算機”圖標(biāo)怕享,打開計算機管理程序,如圖所示镰踏。
? ??????開始對磁盤進行初始化操作函筋,如圖 17-11 所示。Windows 系統(tǒng)用來初始化磁盤設(shè)備的步驟十分簡單奠伪, 各位讀者都可以玩得轉(zhuǎn) Linux系統(tǒng)驻呐, 相信Windows系統(tǒng)就更不在話下了。 Windows系統(tǒng)的初始化過程步驟如圖 17-12 至圖 17-18 所示芳来。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來全景,“玉大人耀石,你說我怎么就攤上這事“只疲” “怎么了滞伟?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長炕贵。 經(jīng)常有香客問我梆奈,道長,這世上最難降的妖魔是什么称开? 我笑而不...
- 正文 為了忘掉前任亩钟,我火速辦了婚禮,結(jié)果婚禮上鳖轰,老公的妹妹穿的比我還像新娘清酥。我一直安慰自己,他們只是感情好脆霎,可當(dāng)我...
- 文/花漫 我一把揭開白布总处。 她就那樣靜靜地躺著,像睡著了一般睛蛛。 火紅的嫁衣襯著肌膚如雪鹦马。 梳的紋絲不亂的頭發(fā)上胧谈,一...
- 文/蒼蘭香墨 我猛地睜開眼和悦,長吁一口氣:“原來是場噩夢啊……” “哼退疫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸽素,我...
- 正文 年R本政府宣布,位于F島的核電站蹋辅,受9級特大地震影響钱贯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜侦另,卻給世界環(huán)境...
- 文/蒙蒙 一秩命、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褒傅,春花似錦弃锐、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至支竹,卻和暖如春旋廷,著一層夾襖步出監(jiān)牢的瞬間鸠按,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- iscsi 本世紀(jì)初,SAN(Storage Area Network负拟,存儲區(qū)域網(wǎng)絡(luò)扣甲,采用網(wǎng)狀通道Fibre Ch...
- 一 . 環(huán)境 操作系統(tǒng): redhat RHEL7.0 服務(wù)端程序:targetd 服務(wù)端管理程序:targetc...
- li=['anny',11,22,'ok','doubi'] #序列化 xu=pickle.dumps(li) p...
- 端午節(jié)要說一說堿水粽,感覺是非常傳統(tǒng)的一種粽子启泣,可能因為它長得更土一點吧ˊ_>ˋ涣脚,但是我非常喜歡這種粽子,用堿水浸...