本文是在閱讀Introduction to Lustre* Architecture的如下章節時的筆記。
- Lustre – Fast, Scalable Storage for HPC
- Lustre Scalable Storage
- Lustre Building Blocks
- Lustre Storage Scalability
Lustre software services are implemented entirely within the Linux kernel, as loadable modules.
Lustre作為Linux核心的模組,工作在核心態。
相對於其它儲存軟體,開發、除錯、定位問題時,困難程度會大一些,對參與相關的業務的開發人員、運維人員的技能和經驗有一定的要求。
A file in Lustre is comprised of a metadata inode object and one or more data objects.
在Lustre叢集中,一個檔案由一個後設資料物件和多個資料物件組成。
Lustre is a client-server, parallel, distributed, network file system.
關鍵資訊,如下:
CS模式,即客戶端、服務端模式,由多個客戶端和多個服務端組成。上層應用訪問儲存提供的服務時,需要整合客戶端,透過客戶端來訪問儲存伺服器的例項。
並行,即多個應用、多個客戶端可以和並行和儲存伺服器的例項通訊,各個業務操作之間沒有順序的依賴。多個檔案的訪問操作、單個檔案的不同部分的訪問操作,均可以同時執行。
分散式系統,客戶和儲存伺服器叢集均可以水平擴容,具備分散式系統的優點和約束。
NFS,即網路檔案系統,相容POSIX規範。
Lustre separates metadata (inode) storage from block data storage (file content).
儲存系統有三類職能:
- 管理職能,管理叢集的後設資料和配置引數。
- 叢集的後設資料,比如叢集中各節點,服務端節點、客戶端節點,儲存節點的容量等。
- 配置引數,比如名稱空間、容量等。
- 後設資料服務,管理目錄、檔案的後設資料。元比如:
- 名稱
- 許可權,比如uid/gid、UGO、ACL等
- 屬性,比如時間類的屬性
- crtime即檔案的建立時間
- ctime即檔案的後設資料的變更時間
- mtime即檔案的資料的變更時間
- atime即檔案的最近訪問時間
- 擴充套件屬性
- 資料的分佈
- 資料儲存服務,管理檔案的資料,檔案被切割為物件,分佈在叢集中的多個儲存服務節點上。
由上述分工可知,對於目錄、檔案的後設資料的操作,均可由後設資料服務實施,無需管理職能和資料儲存服務參與。
This is the key concept of Lustre’s
design – separate small, random, IOPS-intensive metadata traffic from the large, throughputintensive, streaming block IO.
Lustre的設計思路,將檔案資料和檔案後設資料的訪問操作隔離,由不同的元件處理。這兩類資料有不同的訪問特徵。
- 檔案後設資料的訪問,隨機、量小、時延敏感、IOPS要求高。
- 檔案資料的訪問,流式、吞吐量敏感。
後設資料服務和資料儲存服務可以獨立擴容,依據不同的業務場景配置不同的數量比例。
承擔管理職能的服務,由MGS、MGT組成,MGS提供服務,MGT負責儲存資料。
承擔後設資料服務的服務,由MDS、MDT組成,MDS提供服務,MDT負責儲存資料。
承擔資料儲存服務的服務,由OSS、OST組成,OSS提供服務,OST負責儲存資料。
Lustre的客戶端,對客戶應用提供相容POSIX規範的API介面,因此客戶應用無需改造即可訪問儲存在Lustre叢集上的目錄、檔案。
Lustre的客戶端,與儲存服務端之間通訊時
- 使用私有協議 LNet即Lustre Network protocol。
- 支援網路技術包括
OPA
/IB
/Ethernet
。
In order to ensure that failover is handled seamlessly, data modifications in Lustre are
asynchronous and transactional. The client software maintains a transaction log.
原文中的客戶端,指的是部署在客戶應用節點上的Lustre戶端嗎?
All Lustre server types (MGS, MDS and OSS) support failover.
Lustre叢集中不存在單點故障,關鍵程序均有備份,遇到程序故障等現象時,均由後備接替服務,故障恢復時,實現客戶應用無感知的效果。
MGT、MDT支援使用LDISKFS或者ZFS作為後端儲存系統。
Lustre儲存叢集的技術規格項,如下:
- 條帶的數量
- 條帶的大小,包括最大值、最小值
- 物件大小,最大值
- 檔案大小,最大值
- 檔案系統的容量,最大值
- 單個目錄支援的檔案數量或者目錄數量,最大值
- 檔案系統內支援的檔案數量,最大值
- 檔名的長度,最大長度
- 檔案的全路徑的長度,最大長度
上述技術規格項的具體取值和後端儲存的型別有關係。