當前位置:
首頁 > 最新 > Linux搭建ISCSI存儲伺服器

Linux搭建ISCSI存儲伺服器

iscsi(iscsi= internet Small Computer System Interface )是由IEETF開發的網路存儲標準,目的是為了用IP協議將存儲設備連接在一起。通過在IP網上傳送SCSI命令和數據,ISCSI推動了數據在網際之間的傳遞,同時也促進了數據的遠距離管理。由於其出色的數據傳輸能力,ISCSI協議被認為是促進存儲區域網(SAN)市場快速發展的關鍵因素之一。因為IP網路的廣泛應用, ISCSI能夠在LAN、WAN甚至internet上進行數據傳送,使得數據的存儲不再受地域的限制。

ISCSI技術的核心是在TCP/IP網路上傳輸SCSI協議,是指用TCP/IP報文、和ISCSI報文封裝SCSI報文,使得SCSI命令和數據可以在普通乙太網絡上進行傳輸,如下圖:

iSCSI協議定義了在 TCP/IP 網路發送、接收 block(數據塊)級的存儲數據的規則和方 法。發送端將SCSI命令和數據封裝到 TCP/IP 包中再通過網路轉發,接收端收到 TCP/IP 包之後,將其還原為SCSI命令和數據並執行,完成之後將返回的SCSI命令和數據再封裝到 TCP/IP包中再傳送回發送端。而整個過程在用戶看來,使用遠端的存儲設備就像訪問本地的 SCSI設備一樣簡單。

一. 搭建ISCSI存儲伺服器

這裡將Target主機第二塊硬碟的第一個主分區(硬碟分區標識為/dev/sdb1)作為iSCSI共享磁碟,硬碟大小為20G,共享給一台linux主機使用。

1、在ISCSI存儲伺服器上安裝iscsi target軟體包,如下圖所示:

2、iscsi target配置文件是/etc/tgt/targets.conf,此文件中的配置項默認全被注示掉了。編輯該文件,實現簡單的ISCSI存儲伺服器配置。在文件尾部添加如下內容:

註:Target的命名在同一子網內應該是唯一的,標準命名方式為:iqn.yyyy-mm.[:identifier]其中:

iqn:表示「iSCSI Qualified Name」,簡稱iqn。yyyy-mm:表示年份-月份。這裡是2011-08。 reversed domain name:表示倒過來的域名,這裡是com.example。 identifier:表示識別代碼,這裡是disk

backing-store用於指定存儲設備,一般指非實際的物理磁碟,如LVM卷、某個分區、raid磁碟陣列。

然後啟動tgtd服務,並設置系統啟動時自動啟動,iscsi通信的埠:3260/tcp,以明文傳輸數據

#service tgtd start

#chkconfig tgtd on

運行tgtadm --lld iscsi --op show --mode target查看target信息

至此,iscsi target存儲伺服器配置完成,使用iSCSI Initiator就可以連接iscsi target伺服器了。

二. 安裝和配置iscsi客戶端

1、安裝iscsi發起端軟體:iscsi-initiator-utils軟體包

#service iscsi start

#chkconfig iscsi on

2、查找iscsi伺服器上的iscsi目標,即iscsi發現。

執行iscsiadm -m discovery –t st –p iscsi伺服器的IP

iscsiadm -m discovery -t sendtargets -p targetIP地址:埠號

若是默認埠3260可以省略不寫。

3、登錄伺服器上的iscsi目標,即iscsi註冊

執行iscsiadm -m node -T target名稱 -p targetIP地址:埠號 --login

退出iscsi盤陣

執行iscsiadm -m node -T target名稱 -p targetIP地址:埠號 --logout

4、查看/dev/disk/by-path目錄中iscsi符號鏈接所指向的位置或fdisk -l查看磁碟情況或檢查iscsi的狀態:service iscsi status或dmesg |tail

此時,可以使用iscsi磁碟,就好像它是本地連接硬碟驅動器。

5、對連接的iscsi磁碟分區並實現自動掛載

未分區前顯示sdb信息如下,通過下圖可以看出sdb還未建立分區

執行fdisk /dev/sdb分區並在創建好的分區上創建文件系統(執行mkfs –t ext4 /dev/sdb命令創建文件系統)

執行完分區和創建文件系統的命令後顯示sdb信息如下:創建了一個主分區/dev/sdb1

修改/etc/fstab文件實現自動掛載

執行blkid /dev/sdb1獲得sdb1分區的UUID

修改/etc/fstab文件自動掛載sdb1分區,如下圖所示:

測試自動掛載:mount –a或重啟系統後執行df –hT查看掛載情況

注意:

使用blkid確定文件系統UUID並使用UUID掛載,而不是/dev/sd*設備名稱。(每次引導時顯示的設備名稱都不同,具體取決於iscsi設備通過網路進行響應的順序,如果按設備名稱掛載,這會導致使用錯誤的設備)

在/etc/fstab中使用_netdev作為掛載選項。(這將確保客戶端不會嘗試掛載文件系統,直至啟用聯網,否則,在引導時系統將出錯)

確保iscsi和iscsid服務在引導時將啟動

#chkconfig iscsi on

#chkconfig iscsid on

6、刪除iscsi

卸載新文件系統並刪除/etc/fstab中的行或對其添加批註,退出並刪除iscsi目標的條目

7、加密iscsi (與加密一個普通LINUX分區一樣)

三. 配置iscsi的發現和註冊

1、#cryptsetup luksFormat /dev/sdb1 對iscsi的上新分區進行加密並設置解密密碼

Are you sure? (Type uppercase yes): YES (輸入大寫的YES來確定創建加密分區)

Enter LUKS passphrase: (輸入創建密碼,你將用密碼來保護你的加密分區。如果你把密碼弄丟了,那就太不幸了,你就無法取回這些數據了)

Verify passphrase: (確認密碼)

2、這樣一個加密分區就建立好了.接下來我們需要創建一個可以掛載的分區並給它取個名字(這裡我給取名為sdb1, 你也可以叫它test、fred、我的秘密分區或者任何你喜歡的名字)

#cryptsetup luksOpen /dev/sdb1 sdb1

Enter LUKS passphrase: (這裡輸入的是創建加密分區時設置的密碼)

它將會被創建在/dev/mapper/下面.這裡就是/dev/mapper/sdb1,可以用ls命令查看

3、現在將該分區格式化為ext4文件系統。mkfs.ext4 /dev/mapper/sdb1

4、接下來我們創建一個用於掛載的掛載點並掛載. 記住,你必須從/dev/mapper/路徑下使用該設備

5、現在將該分區格式化為ext4文件系統。mkfs.ext4 /dev/mapper/sdb1

6、接下來我們創建一個用於掛載的掛載點並掛載. 記住,你必須從/dev/mapper/路徑下使用該設備

# mkdir /bak

#mount /dev/mapper/sdb1 /bak

好了,現在你可以使用你的加密分區了,如向其內創建或存儲一些文件。

使用完畢後為了保護數據的隱密,我們需要取消掛載並關閉加密分區.

# umount /bak

# cryptsetup luksClose sdb1

只有在打開加密設備的時候,你才需要輸入LUKS密碼。記住,如果丟了密碼,你就完蛋了。你可以刪除分區重新再來,但是數據是無法恢復的。打開加密設備並載入以後,你就可以像使用其它分區一樣使用它了。

#cryptsetup luksOpen /dev/sdb1 sdb1

Enter LUKS passphrase: (這裡輸入的是創建加密分區時設置的密碼)

附加資料:

系統每次啟動自動掛載加密分區:

/etc/crypttab包含要在系統啟動期間解鎖的設備列表,每一行列出一個設備,使用空格分隔欄位。其格式如下:

name /dev/sdaN /path/to/password/file

每個欄位的含義:

name欄位是給加密分區取的一個名字

/dev/sdaN欄位用於加密的分區設備

/path/to/password/file欄位是用於解鎖設備的密碼文件,如果該欄位為空或設置為none,在系統啟動時,系統會提示用戶輸入解密密碼

具體操作如下:

修改/etc/crypttab並添加如下內容,這個文件的作用是每次系統啟動時掛載加密分區時要詢問的的密碼

sdb1 /dev/sdb1 /path/file

具體操作如下:

1、修改/etc/crypttab並添加如下內容,這個文件的作用是每次系統啟動時掛載加密分區時要詢問的的密碼

sdb1 /dev/sdb1 /path/file

若/path/file省略或不設置,則系統在啟動時將要求用戶輸入密碼

2、修改/etc/fstab文件:添加如下內容

/dev/mapper/sdb1 /掛載點 ext4 defaults 0 0

註:sdb1是給加密分區取的名字即執行cryptsetup luksOpen /dev/sdb1 sdb1命令後給分區起的名稱

3、echo 「密碼」 > /path/file 「密碼」創建加密分區時設的密碼

4、chown root /path/file

5、chmod 600 /path/file

6、執行下列命令:cryptsetup luksAddKey /dev/sdb1 /path/file

四、修改內核啟動參數

識別運行內核:

cat /etc/redhat-release //安裝Red Hat Enterprise Linux版本。

uname -r //當前運行的內核版本

uname -m 或arch //當前運行所在處理器體系結構

yum list installed kernel* 安裝的內核版本

Grub 的配置文件位於 "/boot/grub/grub.conf", 更改後將對以後的每次啟動有效。 此配置文件可分為兩個大的部分:全局配置和菜單項配置:A. 全局配置命令全局配置命令從配置文件最上方到第一個 "title" 命令之前結束。default 0timeout 10splashimage (hd0,2)/boot/grub/splash.xpm.gzpassword --md5 $1$tBWhgwVY$sIzNYKY/iV9rZ4keYAkaQ/ #設置了密碼的才有此項default 菜單號: 指定 Grub 默認啟動項(默認引導的系統), 菜單號從0 開始, 0 表示下面的第一個菜單項timeout seconds: 從 Grub 啟動界面出現到以默認啟動項引導系統之間等待用戶選擇的時間。splashimage full_path_of_xpm_or_xpm.gz: 指定啟動菜單的背景文件(xpm 圖像或其gzip 壓縮文件)。B. 菜單項配置從」title」開始到下一個 "title" 之前為一個啟動菜單項, 即引導一個操作系統所需的參數

title: 定義啟動菜單項的名稱root: 設置 Grub 的根設備 (root)為 Linux 內核所在分區kernel: 後跟 Linux 內核文件為參數, 載入 Linux 內核文件initrd: 載入鏡像文件

1、臨時修改內核啟動參數

系統啟動到GRUB階段時,中斷啟動,選擇要引導的系統。如圖所示:

按「a」鍵進入修改內核引導參數界面,輸入系統啟動時要引導的內核參數。如下圖所示:

按回車鍵繼續啟動系統。

與內核引導相關的引導參數可以查看如下文件:

/usr/share/doc/kernel-doc-*/Documentation/kernel-parameters.txt文件。要確保安裝kernel-doc包。

如:enforcing參數:selinux控制;enforcing=1可設置強制模式,enforcing=0可設置許可模式。

Selinux參數:selinux控制;selinux=0可完全禁用selinux,selinux=1可啟用selinux

vga參數:改變字元終端的解析度,vga=788

vga參數值的意義,這裡的值給出的是十進位的,也可以使用十六進位,如vga=0x317。

# VGA Mode Args# Color 640x480 800x600 1024x768 1280x1024# 256 769 771 773 775# 32K 784 787 790 793# 64K 785 788 791 794# 16M 786 789 792 795

2、永久修改內核啟動參數:使用grub.conf文件

在/boot/grub/grub.conf或/etc/grub.conf文件中將內核參數添加到kernel一行中的rhgb quiet前面,注意這一聲明前後與其他部分間有空格,如圖所示:

你的修改應該在/proc/cmdline文件中可以查看到。

環回設備用於像掛載設備一樣掛載文件。例如,對於訪問ISO映像來說這種設備非常方便。默認情況下,內核支持8個環回設備。修改伺服器的內核命令行,使其支持32個環回設備。

列出/dev目錄中的環回設備(環回設備的名稱都是loop*):ls /dev/loop*

將參數max_loop=32添加到/boot/grub/grub.conf中的內核命令行,重啟伺服器,再次查看環回設備的數量。

3、給GRUB設密碼:(務必將password行置於第一個title行的上方,這樣才可全局應用)

明文存儲密碼:在grub.conf文件的全局配置中添加password 密碼

密文存儲密碼:先執行grup-md5-crypt命令生成密碼加密字串,然後修改grub.conf文件在全局配置中添加password --md5 加密密碼字串

4、通過/etc/sysctl.conf文件或sysctl命令查看或調整內核網路參數

修改/etc/sysctl.conf文件以永久更改,然後運行sysctl –p以重新載入

編輯/Alex 美編/Mary


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 網路消防員 的精彩文章:

Linux下FTP服務部署

TAG:網路消防員 |