天天看點

檔案共享 or 生産力,NAS弱爆了

今天咱們繼續聊共享存儲,說一個大家不常接觸的内容:iSCSI。

這個東西不屬于NAS的範疇,屬于咱們之前提到的SAN(Storage Area Network,存儲區域網絡)。說實話,在普通使用者家裡搞一個SAN沒太大必要,而且大多數普通使用者往往連網線還玩不明白呢,再弄個光纖通道交換機成本上劃不來,維護起來也比較麻煩。

檔案共享 or 生産力,NAS弱爆了

但有的東西你家裡可以沒有,卻需要了解一下,畢竟這些東西都是技術領域的天花闆,保不齊哪些愛折騰的使用者還會搞那麼一搞。

當很多人在讨論萬兆網絡的時候,現在SAN的FC通道已經達到了256G,即便是走較慢的以太網SAN的通道也可以達到100Gbps,也就是十萬兆,在這個領域中隻要你投的起裝置,你就可以得到幾乎逆天的存儲速度。

對比大家的NvME SSD隻能說這東西是民用産品,畢竟在讀取速度過3000,商家就可以标記上“讀速高達”多少多少的宣傳語

檔案共享 or 生産力,NAS弱爆了

很多人就會認為SSD的速度快到無邊。當然了,現在貌似最快的SSD驅動器讀速已經破萬。似乎給普通使用者一個感覺SSD真快。

是這樣嗎?如果不考慮成本上一個SAN結果是不一樣的。在今年最新的SAN上已經可以為每個端口提供49700MB/S的資料流量了這就是SAN的一個帶寬優勢。

今天咱們來搭一個特别簡單的SAN伺服器,連計算機上,看一下和NAS的共享到底有什麼不同。

檔案共享 or 生産力,NAS弱爆了

用的系統比較小衆:ESOS,叫做“企業級存儲系統(Enterprise Storage OS)”。2012年由當年的存儲巨頭昆騰開發。現在也由昆騰的團隊維護,最新的更新版本是在2023年5月釋出。目前地球上一共也沒跑夠幾百套ESOS系統,這點可以到ESOS站點上的使用狀态上去查下,大家也可以圖個新鮮來玩玩看。

先說怎麼部署:

部署的準備要求你有一個獨立的電腦,電腦上有硬碟有網卡即可,當然了,如果想真的玩SAN,那麼陣列卡、HBA卡在這套系統上都有支援。雖然ESOS用的人少,但硬體上的支援算是來者不懼。

其次,有一個閑置的4G以上的U盤,ESOS和UNraid一樣,都是U盤啟動安裝部署的。

電腦、硬碟、網卡、U盤,準備好之後,我們就可以開始部署ESOS了。

第一步:下載下傳一套ESOS的安裝包。

這裡得說一下,似乎ESOS 4.X的windows安裝程式是有問題的,iN這邊有linux的機器,是以就沒過份的去強求非得在Windows上把這個安裝包生成了。直接在linux裡搞就可以了

在linux中輸入指令

wget https://download.esos-project.com/packages/4.x.x/esos-4.2.1_z.zip --content-disposition            

下載下傳最新的ESOS安裝包

檔案共享 or 生産力,NAS弱爆了

下載下傳後unzip 解壓到目前目錄

檔案共享 or 生産力,NAS弱爆了

第二步:生成ESOS引導u盤

進入ESOS目錄後,在目錄中有install.sh和install.vbs兩個安裝指令,可以分别用來在Linux和windows中利用指令行進行安裝。

說是安裝,其實是利用這個指令生成一個引導U盤。

在此之前我們需要利用lsscsi指令确定一下U盤的路徑例如iN的這個機器,沒插入U盤時候利用lsscsi指令來看就是兩個盤符/dev/sda和/dev/sr0。

檔案共享 or 生産力,NAS弱爆了

插入U盤後再去鍵入lsscsi指令後,會發現出現了一個/dev/sdb的盤符路徑,這就是一個U盤,記住這個路徑。在指令行中輸入“sudo ./install.sh”

檔案共享 or 生産力,NAS弱爆了

稍等一下,你就可以看到輸入U盤路徑的提示,這一步按輸入“/dev/sdb”,剩下的就是等待引導U盤的建立完成。

第三步:設定ESOS系統

當ESOS的引導U盤生成後,用這個U盤來引導啟動一台計算機。

iN的建議是你要有一台閑置的計算機,這台計算機内的資料全部備份完畢,硬碟最好做個初始化。原因是ESOS是一個存儲系統,會重置這個系統管理下的所有硬碟資訊。

檔案共享 or 生産力,NAS弱爆了

引導成功後利用預設使用者名"root",密碼"esos"可以登陸進入系統

檔案共享 or 生産力,NAS弱爆了

這是一個基于TUI界面的系統,不同于GUI,所有的系統界面完全是由字元終端生成的使用者界面。有點類似于Bios的感覺。但這也就是ESOS的全部了。基本上對于ESOS的設定管理很久也未必會做一次,是以這個界面咱們可以将就。

進入界面的第一步就是做一下系統的網絡設定,按s進入系統設定菜單,選擇網絡設定:

第一項設定一下整體的網絡配置:

檔案共享 or 生産力,NAS弱爆了
檔案共享 or 生産力,NAS弱爆了

這裡就根據個人的實際情況将ESOS的主機名、子域、網關和DNS位址設定一下,例如:

檔案共享 or 生産力,NAS弱爆了

OK之後系統對網絡做一個基本設定:

檔案共享 or 生産力,NAS弱爆了

然後再設定一下網卡的IP位址:還是S進入系統設定,選擇網絡設定:

檔案共享 or 生産力,NAS弱爆了

這時候在本地的網卡都會列在界面中。選擇一塊網卡進入:

檔案共享 or 生産力,NAS弱爆了

設定靜态位址,這裡有一個要說明的點就是廣播位址“Broadcast”,在IP網絡中廣播位址是一個子網主機ID全為1的特殊位址

檔案共享 or 生産力,NAS弱爆了

打個比方,如果你的網絡位址是192.168.10.100,子網路遮罩是255.255.255.0,那麼你的網絡位址的前三個數字就是網絡ID也叫子網ID,是以就是192.168.10.0,如果計算廣播位址就可以計算為最後的一個數字0全部為二進制1,也就是11111111,換算成10進制就是255,是以你的廣播位址是192.168.10.255.

在這個iN的安裝範例裡面,由于iN家裡的網絡設定為了16位子網路遮罩(255.255.0.0),是以後兩個數字都是主機ID,要計算廣播位址就成了172.16.255.255。

其次,注意到右上角的MTU了嗎?預設值是1500,其實如果要獲得更高的性能,并且交換機支援的話,可以在這裡設定巨型幀——例如9000。但是這就牽扯到帶外管理(用另一套網絡來管理裝置)的事情了,是以咱們還保留一下1500。這樣做性能會打那麼一點點折扣。

在設定好網絡參數之後,ESOS就可以遠端通路和遠端管理了。

檔案共享 or 生産力,NAS弱爆了

直接可以SSH登陸,和直接接入鍵盤顯示器沒有任何差別。是以,顯示器、鍵盤什麼的都可以從這台“存儲伺服器”上拆掉了。

第四步:設定ESOS存儲

檔案共享 or 生産力,NAS弱爆了

當你從遠端登陸了ESOS後你會發現——這個系統依舊“空空如也”似乎什麼東西都沒有的感覺。

目前我們能看到的界面主要有兩個區域,第一個Taget(目标)概覽,第二個會話(session)概覽

Taget是ESOS可以對外提供的存儲目标,Session則是接入到ESOS系統中的客戶連接配接。

在頂部菜單中 Hardware RAID 、Software RAID 、LVM 、File Systems對應了一個存儲伺服器所需要規劃的四個大的功能點、硬體的RAID、軟體的RAID、邏輯卷管理和檔案系統管理。

在這台機器上iN就隻挂了一個SSD硬碟,是以更深的東西咱們就在以後找機會再來講,今天的目标是讓這個系統跑起來。

簡要說說,如果你打開檔案系統的菜單,你可以利用檔案系統的功能建立基于磁盤檔案的虛拟盤。

檔案共享 or 生産力,NAS弱爆了

這時候在系統中接入的硬碟可以被暴露出來了:

檔案共享 or 生産力,NAS弱爆了

在設定檔案系統的時候,ESOS可以支援四種檔案系統:

檔案共享 or 生産力,NAS弱爆了

其實還可以下載下傳其他的ESOS子版本對類似于ZFS這樣的系統進行支援。在今天的例子裡面我們選擇Btrfs,這是一種基于二叉樹的支援寫入複制的高性能塊檔案系統。

定義完畢檔案系統之後,系統挂載的整塊硬碟就可以承載虛拟磁盤的檔案了

我們還需要建立虛拟磁盤:

檔案共享 or 生産力,NAS弱爆了

選擇剛剛建立的檔案系統:

檔案共享 or 生産力,NAS弱爆了

定義虛拟磁盤的名稱和尺寸

檔案共享 or 生産力,NAS弱爆了

在這個例子裡面我們先建立2個40G的虛拟磁盤。

檔案共享 or 生産力,NAS弱爆了

現在在檔案系統-虛拟磁盤檔案清單中我們可以檢視到這兩塊虛拟磁盤。

檔案共享 or 生産力,NAS弱爆了

這裡要注意的是,這是虛拟磁盤檔案,雖然已經存在在系統中,但是還不能被外界所直接使用。如果我們在指令行上檢視,我們會發現,這兩個“磁盤”僅僅是/mnt下的兩個檔案。

檔案共享 or 生産力,NAS弱爆了

但建立了虛拟磁盤之後,我們就可以開始建立虛拟驅動器了。也就是菜單的第二行Devices部分。

檔案共享 or 生産力,NAS弱爆了

驅動器(Device)是ESOS真正可以作為目标的系統對象,咱們來仔細說一下:

在建立驅動器的過程中,我們可選的項目很多,其中包括

  • dev_disk
  • dev_disk_perf
  • vcdrom
  • vdisk_blockio
  • vdisk_fileio
  • vdisk_nullio
  • dev_changer
  • dev_tape
  • dev_tape_perf

其中,dev_disk和dev_disk_perf 是指系統挂載的實體盤直接連接配接;

vcdrom是以iso檔案模拟CD光牒驅動器,CD光牒的ISO檔案我們可以在ESOS的指令行界面直接拉取:

檔案共享 or 生産力,NAS弱爆了

vdisk_blockio和vdisk_fileio是以“塊I/O”或者“檔案I/O”挂載虛拟磁盤檔案

vdisk_nullio是進行性能測試使用的非存儲目标

dev_changer,dev_tape和dev_tape_perf是ESOS挂載備份用錄音帶庫(changer)和錄音帶機(tape)的裝置入口。

剛剛我們建立了兩個虛拟磁碟機檔案,是以可以選擇vdisk_fileio将磁盤檔案挂載為虛拟驅動器。

檔案共享 or 生産力,NAS弱爆了

這裡面有幾個設定項

Block Size,這是檔案系統與儲存設備互動時使用的基本資料單元的大小。

NV Cache,表示是否使用非易失性緩存

Removable,是否為可移動媒體,也就是說是否可以從系統裡面像U盤一樣彈出

Write Through,直接寫入标志,直寫入意味着資料将直接寫入磁盤,而非直寫入可以獲得最大的寫入性能優化,但如果在寫入過程中斷電有可能丢失資料。

Read Only,這是隻讀标記,開啟後磁盤資料被保護,不能寫入

Rotational,“旋轉”,這個選項比較有意思,是定義你的存儲媒體是否是一個旋轉的機械盤。按照誠實的方法來做,固态盤選No,機械盤選Yes。

結合現在示範機器的情況,我們就設定成這樣:

檔案共享 or 生産力,NAS弱爆了

設定完畢之後,我們就可以在驅動器資訊中看到剛剛設定的兩個驅動器。

檔案共享 or 生産力,NAS弱爆了

現在存儲器一層的事情做好了。

如果是要做iscsi,我們就要開始定義這個存儲伺服器上的target。

第五步:設定ESOS存儲目标,“目标”這個詞彙是咱們IT圈子直接翻譯人家原文“Target”的,更貼切的翻譯其實是“靶子”

檔案共享 or 生産力,NAS弱爆了

“目标”和“靶子”在英文裡面都是一個詞彙。咱們就不深究翻譯問題了。在一個SAN級别的存儲伺服器中,所有的存儲資源都是以“靶标”的形式暴露出來的,遠端的主機(Host)去将資料投射到“靶标”上。

如果不設定“靶标”,那麼一個存儲伺服器中插入再多的硬碟也沒有任何意義——隻是一堆硬碟而已。

是以在讓其他主機能夠接入到存儲之前需要我們先設定“靶子”。

檔案共享 or 生産力,NAS弱爆了

“靶子”很簡單設定,給個名字就可以了,一般的規則是寫明這是一個IQN(iSCSI Qualified Name,ISCSI全局名稱)。

檔案共享 or 生産力,NAS弱爆了

IQN力求要做到全球唯一,是以基本上大家的規則是以“IQN”開頭,後面接年份-月.反向域名:唯一辨別符這樣的寫法。寫法是一個非強制标準,如果願意遵守可以避免很多潛在的撞名問題,在小區域内使用不願意遵守其實也沒太大的事情。

檔案共享 or 生産力,NAS弱爆了

是以我們的IQN寫為:iqn.2024-04.esos.esosHost:w25011

靶子立起來了,誰來開槍呢?

第六步,設定發起器

發起器(Initiator)這個概念有點反常識的感覺,不過我們順着來解釋,一般人都可以了解發起器到底是怎麼回事。

存儲本身是依托于計算機裝置的。

檔案共享 or 生産力,NAS弱爆了

按照計算機的架構來說計算機是分為輸入裝置、輸出裝置、運算器、控制器和存儲器五個部分的。但是這裡的“存儲器”是指“記憶體”。當然了計算機的輸入裝置也不是鍵盤、滑鼠、觸摸屏、輸出裝置也并不是指顯示器和音箱。除了這五個裝置之外,計算機上所有的裝置不論是不是在機箱裡面實際上都叫做外設。

檔案共享 or 生産力,NAS弱爆了

各自外設通過總線連接配接到計算機中完成各自的功能。

雖然一個SAN存儲是帶有CPU、記憶體且有作業系統的,但對于計算機而言,存儲本身是一個外設,和插在USB接口上的移動硬碟沒什麼差別。是以我們講了這麼半天的ESOS存儲伺服器本身對計算機而言是一個輔助裝置。雖然它可以立起來“靶子”,但還得讓“槍”來打,這就是“發起器”的概念了,主動權在計算機這杆“槍”上而不是在“靶子”上。

是以我們先要建立一個發起器。切換到Windows上,在伺服器管理器程式中選擇“iscsi發起程式”

檔案共享 or 生産力,NAS弱爆了

windows系統使用iscsi發起程式來建立自己的發起程式。

打開後,可以開啟配置視窗:

檔案共享 or 生産力,NAS弱爆了

我們進入到配置頁籤,可以看到發起程式的預設設定:

檔案共享 or 生産力,NAS弱爆了

這裡面有一個發起程式的預設名稱,建議點選“更改”按鈕修改一下:

檔案共享 or 生産力,NAS弱爆了

現在windows界面中的“iqn.2024-04.rihome:win25”就是在存儲網絡中Windows這杆槍的IQN名字了。

在ESOS中添加一個組:

檔案共享 or 生産力,NAS弱爆了

選擇這個組内要包含的target,一個存儲組可以容納大量target。

檔案共享 or 生産力,NAS弱爆了

為組命名:

檔案共享 or 生産力,NAS弱爆了

命名後添加發起器:

檔案共享 or 生産力,NAS弱爆了

選擇target:

檔案共享 or 生産力,NAS弱爆了

關聯到組:

檔案共享 or 生産力,NAS弱爆了

然後填入剛剛在Windows中設定的發起器IQN:

檔案共享 or 生産力,NAS弱爆了

至此,我們将靶子(Target)立起放在了比賽通道(Group)中,也為這個通道注冊了一名比賽的槍手(Initiator)。

檔案共享 or 生産力,NAS弱爆了

槍手舉起槍了,你卻發現……并沒有剛剛的虛拟驅動器什麼事情。

嗯,沒錯,靶子隻是一個精神象征而已,我們還需要把驅動器關聯到target上。

檔案共享 or 生産力,NAS弱爆了

這裡“Map to Host Group”要把磁盤也放在比賽的通道裡面去。它才是實質的東西。

檔案共享 or 生産力,NAS弱爆了

先選擇已經存在的磁盤

檔案共享 or 生産力,NAS弱爆了

再選擇taget

檔案共享 or 生産力,NAS弱爆了

再選擇剛剛設定好的組

檔案共享 or 生産力,NAS弱爆了

為這個磁盤在Target中設定一個邏輯單元号,預設是0,但iN一般從1開始設定。同時确定這是不是一個隻讀盤,這裡設定為No。

這時候磁盤就和Target以及主機的通路組進行了關聯。

再進入target菜單中将tagert打開:

檔案共享 or 生産力,NAS弱爆了

從清單中選擇要打開的target:

檔案共享 or 生産力,NAS弱爆了

選擇Enable(允許)後按下OK:

檔案共享 or 生産力,NAS弱爆了

最後确認一下target清單中狀态(state)被改變為Enable

檔案共享 or 生産力,NAS弱爆了

這時候,ESOS的設定就已經完畢,回到Windows的ISCSI發起程式,你會發現剛剛在ESOS中設定好的target已經出現在視窗中(這就是最前提到的廣播的功效)。

檔案共享 or 生産力,NAS弱爆了

如果沒有的話,在目标中輸入ESOS伺服器的IP位址

檔案共享 or 生産力,NAS弱爆了

然後選擇快速連接配接,我們就可以直接連接配接到ESOS的目标中

檔案共享 or 生産力,NAS弱爆了

至此,ESOS建立的ISCSI就被成功的接入到Windows系統中。

但是,此刻你如果去看“我的電腦”中是不會包括剛剛接入的磁盤的。

檔案共享 or 生産力,NAS弱爆了

原因是這個磁盤好比你剛買的接入到windows系統中的新驅動器一樣。

我們還需要做 最後一步 挂載iscsi驅動器。

打開計算機管理:

檔案共享 or 生産力,NAS弱爆了

在磁盤管理菜單中我們可以看到這塊我們規劃好的40G磁盤。目前屬于脫機狀态。

檔案共享 or 生産力,NAS弱爆了

有鍵點選磁盤,選擇聯機

檔案共享 or 生産力,NAS弱爆了

聯機後,再右鍵點選初始化磁盤

檔案共享 or 生産力,NAS弱爆了

選擇一個分區表格式,點确定。

在磁盤分區上點一下右鍵選擇建立卷,這裡建立的是簡單磁碟區

檔案共享 or 生産力,NAS弱爆了

然後格式化硬碟,最終這塊Iscsi硬碟就以E盤的面目被挂載在了Windows中。

而在Esos端我們也可以看到“會話”(Session)區域已經出現了一個會話。

檔案共享 or 生産力,NAS弱爆了

至此,這塊遠端的硬碟就可以使用了。

看起來頗費周章的操作,隻給Windows 添加了一個來自于遠端的虛拟硬碟。這樣做有什麼好處呢?

其實這就是生産力。我們來做個測試:

現在D盤中有一個Ubuntu的安裝包:

檔案共享 or 生産力,NAS弱爆了

如果我們将之拷貝到一個SMB共享目标中:

檔案共享 or 生産力,NAS弱爆了
檔案共享 or 生産力,NAS弱爆了

我們會發現在千兆網絡中,檔案的傳輸操作是基本跑滿千兆的,90~110MB左右的傳輸速率。

但是如果我們将檔案往iscsi的E盤拷貝呢???

是這樣!

檔案共享 or 生産力,NAS弱爆了
檔案共享 or 生産力,NAS弱爆了

原因很簡單。SMB是以檔案封裝的方式進行資料傳輸。系統傳輸開銷很大效率較低。

而在iscsi下,是通過網絡直接發送磁盤的操作指令和磁盤資料塊進行檔案傳輸。即便是很小的帶寬(1Gbps),在系統級别上仍然可以高速的運作。

這個挂載硬碟是不是比大家想象的速度要快得多呢?做為生産力工具來挂載的iscsi在同等配置水準上基本上速度是可以超過NAS共享檔案夾幾倍的,NAS是不是弱爆了?

當然了,在一般情況下一個iscsi隻可以為一個主機所使用,這是iscsi的硬傷,但是,真正的生産力環境下我們可以通過背景複制的方式讓幾個不同的iscsi驅動器之間的資料完全同步,這樣就可以解決所謂的共享問題。那麼問題來了,會不會讓存儲伺服器上的空間需求爆炸性的增長呢?實際上也不會,存儲伺服器上使用的Btrfs或者ZFS檔案系統本身就是塊級存儲,相同的資料不會二次占用額外的空間。是以即便是有幾百個iscsi目标放在一個存儲伺服器裡面,存放了幾百份相同的檔案,實際上也僅僅占用一份檔案的空間。

具體的iscsi同步的事情,我們找時間再詳細聊,今天就到這裡吧。