8 iSCSI网络存储服务
iSCSI網絡存儲服務
一網絡存儲概述
·直接附加存儲
通常我們所熟悉的存儲設別就是硬盤,其通過與計算機主板的I/O接口(如IDE、SCSI)相連接,由本機操作系統負責讀寫及管理,這就是最傳統的數據存儲技術,稱為DAS(Direct Attached Storage,直接附加存儲)
·網絡存儲
隨著企業中數據信息的不斷增長,尤其當成百上千TB的數據需要備份、恢復,以及面臨著擴容、災難恢復等需求時,DAS方式使得數據的管理與維護日益困難。正因為如此,網絡存儲技術應運而生,其最常見的就是NAS和SAN
SAN(Storage Area Network,存儲區域網絡)
SAN是通過光纖交換機、光纖路由器等設備將磁盤陣列、磁帶機或獨立的ISCSI設備與服務器連接,構成一個高速存儲子網,存儲的數據以數據塊的形式通過ISCSI協議進行傳輸,從而優于普通的IP包傳輸;結構如圖所示
NAS(network attachment storage,網絡附加存儲)
NAS存儲設備相當于一臺獨立的服務器,設備本身帶有操作系統,也擁有網絡接口,因此不依賴于其他服務器,在NAS設備中為客戶機分配存儲空間時,通常采用共享文件夾的方式進行發布,存儲的數據以文件的形式進行傳輸,采用CIFS或者NFS等協議;結構如圖所示
除了購買硬件NAS設備外,通過為PC服務器安裝FreeNAS系統平臺也可以作為高校的NAS存儲設備使用;FreeNAS是一個專為NAS、iSCSI存儲定制的精簡版UNIX系統,基于FreeBSD系統開發而成,其官網http://www.freenas.org(與此類似的存儲平臺還有OpenFiler)
二構建iSCSI服務器
·iSCSI概述
iSCSI(iscsi= internet Small Computer System Interface )
是由IEETF開發的網絡存儲標準,目的是為了用IP協議將存儲設備連接在一起。通過在IP網上傳送SCSI命令和數據,ISCSI推動了數據在網際之間的傳遞,同時也促進了數據的遠距離管理
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
客戶(應用)端 initiator
·在RHEL6中搭建ISCSI存儲服務器
ISCSI服務器通常也稱為Target端,負責定義存儲對象、分配邏輯空間LUN(Logical Unit,邏輯單元)(實驗環境時,開虛擬機前最好添加四塊以上硬盤)
1準備存儲設備
存儲設備指將要分配給某一個客戶機使用的設備文件,在RHEL6系統中,硬盤、分區、邏輯卷、軟RAID等都可以用作ISCSI服務的存儲設備,為了延續磁盤空間的可擴展性,建議以一個邏輯卷為單位分配給客戶機使用,對于個別有特殊要求的客戶機,也可以將一個軟RAID
LVM邏輯卷存儲設備
將新添加的一塊磁盤創建為物理卷,創建卷組,在卷組中創建一個容量為10G的邏輯卷
軟RAID磁盤陣列
在Linux系統中做RAID,磁盤陣列的設備可以是一塊磁盤中的三個以上的分區,也可以是三塊或以上的磁盤;使用mdadm管理工具(默認已安裝)來創建軟RAID設備,這里使用三塊硬盤,每塊20G,創建一個RAID5陣列
[root@svr ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd[b-f]????????或簡寫為
執行完以上命令后會在后臺進行創建,執行以下命令可查看詳細信息和創建進度
其中
--create ????????????//表示要創建raid
--auto=yes /dev/md0 //新建立的軟件磁盤陣列設備為md0,md序號可以為0-9
--level=5 ????????????//磁盤陣列的等級,這里表示創建是的raid5
--raid-devices ????????//添加作為磁盤陣列用的磁盤的塊數
--spare-devices ????????//添加作為預備(spare)磁盤的塊數
/dev/sd[b-d] ????????//磁盤陣列所使用的設備,還可寫成/dev/sdb /dev/sdc /dev/sdd
如果磁盤容量比較大,可以直接查看/proc/mdstat文件來了解RAID創建和運行情況
如果要本機使用,可以格式化并掛載(建議設置開機自啟動和自動掛載)
創建/etc/mdadm.conf這個配置文件,即可開機自啟動
修改/etc/fstab文件,設置開機自動掛載
軟RAID的擴展知識
1擴容raid磁盤陣列
顯示磁盤陣列的組成情況,4個塊設備組成,:
# cat /proc/mdstat
把/dev/sdg增加進陣列/dev/md0:
# mdadm? --add /dev/md0 /dev/sdg
把raid5陣列/dev/md0修改為5個塊設備:
# mdadm --grow /dev/md0 -n5
再顯示一下磁盤陣列的組成情況,現在/dev/md1是6個塊設備組成,完成擴容,還需要7.7分鐘。
# cat /proc/mdstat
等待擴容完成.....
執行下列命令:
驗證:
2模擬RAID5中一塊磁盤損壞,檢驗spare磁盤的功能(raid5中允許一塊磁盤損壞,我們所設置的那1塊spare磁盤會立即替代損壞的磁盤,進行RAID的重建,保障數據的安全):
[root@svr ~]# mdadm --manage /dev/md0 --fail /dev/sdd
//使用此命令設置磁盤sdd成為出錯的狀態
來查看一下:mdadm --detail /dev/md0
可以查看cat /proc/mdstat文件查看RAID5的重建過程
再來看一下重建完后的結果
/mnt/raid5還可以正常使用
3將出錯的磁盤刪除并加入新的磁盤:
先刪除損壞的磁盤sdd:
[root@svr raid5]# mdadm --manage /dev/md0????--remove /dev/sdd?????? //將損壞的磁盤sdd從RAID中刪除
再添加一塊新的磁盤作為spare磁盤:
[root@svr raid5]# mdadm --manage /dev/md0 --add /dev/sdg??????? //添加新的磁盤sdg
OK,再來查看一下:
執行以下命令
mdadm --detail /dev/md0查看結果
4關閉軟件RAID的方法:
當你不再需要已經設置的RAID的時候,可以用以下方法關閉RAID:
1)卸載/dev/md0,并且刪除或注釋掉/etc/fstab文件中的配置:
[root@svr ~]# umount /dev/md0????
[root@svr ~]# vi /etc/fstab????
#/dev/md0???????? /mnt/raid5????????ext4????????defaults????????????0 0
2)注釋掉或刪除/etc/mdadm.conf中的設置:????
[root@svr ~]# vi /etc/mdadm.conf????
#ARRAY /dev/md0 UUID=d58ed27d:00ce5cf5:b26ed1e9:879d0805
3)停止raid設備
# mdadm --stop /dev/md0
4)刪除raid中的所有磁盤
這時候raid中的磁盤就刪除了,重啟后也不會產生md127了.
RAID0和RAID1實同于RAID5
RAID0:并行讀寫數據
RAID1:鏡像磁盤陣列
2安裝scsi-target-utils軟件包
在RHEL6服務器中需要安裝scsi-target-utils軟件包,對應的系統服務為tgtd,命令行管理工具為tgtadm;有相關依賴包,建議使用yum安裝
3創建iSCSI對象(Target)
即將準備好的存儲設備(邏輯卷和RAID5)添加到iSCSI中,為客戶端準備存儲空間(LUN);有兩種方法:一種是使用命令的添加方式(略);一種是直接修改配置文件;
iscsi target配置文件是/etc/tgt/targets.conf(在文件尾部添加如下內容)
Target的命名在同一子網內應該是唯一的,標準命名方式為:
iqn.yyyy-mm.<reversed domain name>[:identifier]
其中:
iqn:表示"iSCSI Qualified Name",簡稱iqn。
yyyy-mm:表示年份-月份。這里是2011-08。
reversed domain name:表示倒過來的域名,這里是com.example。
identifier:表示識別代碼,這里是disk
backing-store用于指定存儲設備,一般指非實際的物理磁盤,如LVM卷、某個分區、raid磁盤陣列。
initiator-address 地址 用于將target指派給指定的客戶機使用,為了安全,可自定義設置
4重啟服務并將服務設置為開機自啟動,然后設置防火墻開啟3260號端口通信
記得保存防火墻規則
5驗證target信息
至此,iscsi target存儲服務器配置完成,客戶端使用iSCSI Initiator就可以連接iscsi target服務器了
二客戶端使用iSCSI存儲設備
·Linux客戶端使用iSCSI存儲設備
1客戶端安裝iscsi-initiator-utils和lsscsi軟件包
這個沒有依賴關系,可以用rpm安裝
其中iscsi-initiator-utils是連接服務器的客戶端軟件,lsscsi是查看iSCSI設備信息的工具包
2發現并連接iSCSI設備
發現設備,若是默認端口3260可以省略不寫
發現兩個設備(為了安全考慮,可以在服務器上設置ACL訪問控制策略,以免被別人發現)
連接設備
--login可以簡寫為-l;--out表示斷開連接,簡寫-u
3查看網絡存儲設備
4使用磁盤
接下來使用磁盤就跟使用本地磁盤幾乎一樣(fdisk、mkfs、mount操作,與普通設備無異);進行分區格式化,掛載設置開機自啟動等;若iSCSI設備已包含文件系統,則無需再格式化
·windows客戶端使用iSCSI存儲設備
Windows Server2008 自帶iSCSI客戶端程序
1確保客戶機與服務器的通信
2打開管理工具-iSCSI發起程序
3輸入服務器地址,直接點擊快速連接
4連接成功后單擊完成,可以關閉連接面板了
5右鍵計算機選擇管理-存儲-磁盤管理,可以看到新加的磁盤1
6右擊磁盤1選擇聯機,再右擊選擇初始化磁盤,直接點擊確定
7現在的操作和普通磁盤一樣了,可以新建簡單卷等
轉載于:https://blog.51cto.com/itit0/1334715
總結
以上是生活随笔為你收集整理的8 iSCSI网络存储服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PowerShell挂起功能--Conf
- 下一篇: 实现textarea限制输入字数