使用 iSCSI 服務(wù)部署網(wǎng)絡(luò)存儲

? ??????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ù)浙值。

iSCSI-HBA 卡實拍圖

? ? ? ? 二、創(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 磁盤陣列和備份盤印衔, 如圖所示啡捶。

添加 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ā)起程序,如下圖所示朝刊。

在控制面板中單擊“管理工具”
雙擊“iSCSI 發(fā)起程序”圖標(biāo)

? ? ? ? 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 地址冯挎,然后單擊“快速連接”按鈕,如下圖所示咙鞍。

填寫 iSCSI 服務(wù)端的 IP 地址

? ??????在彈出的“快速連接”提示框中可看到共享的硬盤存儲資源房官,單擊“完成”按鈕即可,如下圖所示续滋。

在“快速連接”提示框中看到的共享的硬盤存儲資源

? ??????回到 “目標(biāo)” 選項卡頁面翰守, 可以看到共享存儲資源的名稱已經(jīng)出現(xiàn), 如下圖所示疲酌。

在“目標(biāo)”選項卡中看到了共享存儲資源

? ? ? ? 3.準(zhǔn)備連接 iSCSI 服務(wù)端的共享存儲資源蜡峰。由于在 iSCSI 服務(wù)端程序上設(shè)置了 ACL,使得只有客戶端名稱與ACL 策略中的名稱保持一致時才能使用遠程存儲資源朗恳, 因此需要在 “配置”選項卡中單擊“更改”按鈕湿颅,把iSCSI 發(fā)起程序的名稱修改為服務(wù)端ACL 所定義的名稱,如下圖所示粥诫。

修改 iSCSI 發(fā)起程序的名稱

? ??????在確認(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 所示芳来。

對磁盤設(shè)備進行初始化操作
開始使用“新建簡單卷向?qū)А?/div>
對磁盤設(shè)備進行分區(qū)操作
設(shè)置系統(tǒng)中顯示的盤符
設(shè)置磁盤設(shè)備的格式以及卷標(biāo)
檢查磁盤初始化信息是否正確
等待磁盤設(shè)備初始化過程結(jié)束
磁盤初始化完畢后彈出設(shè)備圖標(biāo)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市猜拾,隨后出現(xiàn)的幾起案子即舌,更是在濱河造成了極大的恐慌,老刑警劉巖挎袜,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顽聂,死亡現(xiàn)場離奇詭異,居然都是意外死亡盯仪,警方通過查閱死者的電腦和手機紊搪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來全景,“玉大人耀石,你說我怎么就攤上這事“只疲” “怎么了滞伟?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炕贵。 經(jīng)常有香客問我梆奈,道長,這世上最難降的妖魔是什么称开? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任亩钟,我火速辦了婚禮,結(jié)果婚禮上鳖轰,老公的妹妹穿的比我還像新娘清酥。我一直安慰自己,他們只是感情好脆霎,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布总处。 她就那樣靜靜地躺著,像睡著了一般睛蛛。 火紅的嫁衣襯著肌膚如雪鹦马。 梳的紋絲不亂的頭發(fā)上胧谈,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音荸频,去河邊找鬼菱肖。 笑死,一個胖子當(dāng)著我的面吹牛旭从,可吹牛的內(nèi)容都是我干的稳强。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼和悦,長吁一口氣:“原來是場噩夢啊……” “哼退疫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸽素,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤褒繁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后馍忽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棒坏,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年遭笋,在試婚紗的時候發(fā)現(xiàn)自己被綠了坝冕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡瓦呼,死狀恐怖喂窟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吵血,我是刑警寧澤谎替,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站蹋辅,受9級特大地震影響钱贯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜侦另,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一秩命、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褒傅,春花似錦弃锐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至支竹,卻和暖如春旋廷,著一層夾襖步出監(jiān)牢的瞬間鸠按,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工饶碘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留目尖,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓扎运,卻偏偏與公主長得像瑟曲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子豪治,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容