金融機構關鍵業務系統資料儲存規劃實施與配置

danny_2018發表於2024-01-18

本文介紹了金融機構關鍵業務系統資料儲存實施配置中的一些實踐,讀者可以利用本文提供的儲存、組網、引數等資訊,在實踐中進行參考,減少在實施方案規劃時的負擔與實施過程中的風險。

【作者】張鵬,某金融科技公司高階技術主管

關鍵業務系統資料儲存規劃實施與配置

儲存的實施需要從儲存本身及儲存組網環境幾個方面來設計。

儲存側的配置主要包含容量、儲存池、檔案系統以及網路的規劃。使用儲存之前,建議首先分析清楚業務效能和容量需求,做好儲存系統的硬碟數規劃,降低運維風險。

儲存系統用於儲存業務資料和系統資料,為了保證有足夠的容量用於儲存業務資料,需要對儲存系統的可用容量進行合理規劃。規劃可用容量時,需要考慮單盤標稱容量、熱備容量、RAID利用率等因素。硬碟廠商和作業系統對硬碟容量定義的演算法是存在偏差的,因此,硬碟的標稱容量和作業系統中顯示的實際容量也存在著一定的偏差。通常硬碟廠商的演算法:1GB=1,000MB、1MB=1,000KB、1KB=1,000bytes。作業系統的演算法:1GB =1,024MB、1MB =1,024KB、1KB=1,024bytes。儲存系統支援熱備空間,用於承載失效成員盤中的資料,在規劃儲存可用容量時要考慮熱備空間的佔用。不同的RAID級別中,校驗資料帶來的容量開銷是不同的,也就是說RAID有效磁碟空間利用率也是規劃實際可用容量需要考慮的。除此之外,不同廠商可用容量資料塊大小計算也有差異,所以計算規劃可用容量的時候,最好有一定的餘量。

儲存池,是存放儲存空間資源的容器。為了更好地利用儲存系統的儲存空間,需要根據實際的業務需求,對儲存池的RAID策略進行合理的規劃。根據RAID中檢驗位的個數不同提供不同的保護級別。RAID保護級別的選擇可以參考前文描述,根據業務特點不同提供更合理的容量和效能。建立儲存池時,允許設定容量分配比的告警閾值,預設是80(百分比),這裡特別強調關鍵業務環境下不建議增大這個預警值。在使用瘦磁碟(Thin LUN)的時候,容量告警尤其重要,使用者可以根據業務資料量增長的速度設定合理的告警閾值,避免業務因為儲存池容量不足而造成服務中斷。儲存池中RAID的劃分,還要考慮磁碟冗餘和磁碟櫃冗餘,以及熱備盤的配比。RAID是否跨磁碟櫃,在空間利用率、可靠性、效能方面還是有差異,不跨磁碟櫃的RAID空間利用率高,跨磁碟櫃的RAID可靠性高,兩者隨機讀與順序讀效能相當,其中不跨磁碟櫃的RAID順序寫效能高於隨機寫效能。

儲存區域網路SAN中,邏輯單元號LUN是用來標識一個邏輯單元的數字,這個邏輯單元是透過SCSI定址的裝置。儲存系統將物理硬碟進行分割槽,成為擁有邏輯地址的各個部分,進而允許伺服器進行訪問,這樣的一個分割槽便稱為一個LUN。通常說的LUN也指在SAN儲存上建立的邏輯磁碟。不同廠商對LUN和卷的定義不同,本文針對一般情況進行描述,即卷只是針對伺服器來講。儲存系統上建立一個LUN,此時LUN相對於儲存系統是一個邏輯裝置。當網路中的伺服器連線到儲存系統時,就可以識別到儲存系統上的邏輯裝置LUN,此時LUN相對於伺服器來講就是一個物理硬碟。在該物理硬碟上建立一個或多個分割槽,就可以得到一個或多個卷。此時卷相對於伺服器是一個邏輯裝置。資料庫或應用系統建立LUN時,為了儲存系統的效能達到最優狀態,需要根據實際的資料儲存情況,為LUN選擇合適的策略。通常儲存廠商會提供不同應用型別的預置配置策略,如果沒有匹配特定的應用型別,也可以選擇通用型別。LUN數量的設定,要考慮LUN是否跨越RAID組中的所有硬碟,新型的RAID技術的儲存池會將LUN的資料塊儘量分佈在所有硬碟上,發揮最大效能,所以要參考不同廠商提供的配置策略設定合理的LUN數量。同時滿足數量的前提下,使用盡量大的LUN容量,以簡化管理開銷,但是建議單個LUN不要超過2TByte。

網路側配置,不管透過以光纖通道為代表的儲存區域網路還是透過乙太網互聯,儲存和伺服器之間的網路側規劃要充分考慮可靠性和負載均衡等特性,通常要遵循幾個原則,即伺服器鏈路雙交換組網,每個伺服器至少兩張HBA卡(這裡的HBA卡不是泛指光纖通道卡,可以理解為伺服器透過不同協議連線儲存的介面卡),每張卡到兩個交換機均有鏈路;儲存到交換機雙交換組網,每個控制器至少兩張介面卡,每張介面卡到兩個交換機均有鏈路。

儲存和伺服器間的訪問控制也需要規劃。LUN Masking邏輯單元號掩蔽是指LUN與伺服器HBA卡的WWN地址繫結,與伺服器HBA卡建立一對一或多對一的連線和訪問關係。以儲存為中心的,在一個儲存前端埠掩碼多個LUN的加強型方法。LUN Masking在儲存控制器級別上進行伺服器HBA的WWN繫結,因此儲存控制能夠將不同LUN劃分給一個或多個伺服器,可以提供LUN級別的訪問控制。LUN Masking也允許磁碟儲存資源在多個獨立伺服器之間共享。LUNMapping邏輯單元號對映是指LUN與儲存裝置的伺服器埠進行繫結,伺服器連線不同的伺服器埠時所能訪問的LUN不同。實現不同的LUN與不同的儲存伺服器埠繫結,不同的伺服器埠與不同的FC交換機或者不同的ZONE連線,從而實現不同的伺服器只能訪問不同的儲存埠。不同廠商對LUN Masking和LUN Mapping的定義和解釋不完全相同,有的甚至就定義成一個名稱。本位以對映檢視作為統稱,主要圖定義了LUN、陣列埠、伺服器埠之間的邏輯對映。建立對映檢視,建議為了便於管理,建立類似LUN組的物件,將同一種業務的LUN加入到一個LUN組內。建立類似伺服器組的物件,將包含一組需要共享儲存資源的“伺服器”,以及每個“伺服器”包含多個啟動器(主機埠)。為每一個伺服器建立一個“伺服器”,將該伺服器的所有啟動器新增到該“伺服器”內。如果為了可以更精細化的控制儲存埠的分配,可以考慮建立類似埠組的物件,一個埠組應至少包含來自於每個控制器的一個埠,以增加運維的靈活性,降低業務之間的效能影響,同時避免單點故障。

伺服器側的配置,主要考慮在伺服器硬體資源有限的情況下,最大程度地發揮出伺服器效能,提高系統的併發處理能力與穩定性是一項相當重要的工作。作業系統核心引數的調整是必不可少的。例如Linux系統下,TCP斷開連線以後會以TIIME_WAIT狀態保留一定的時間,然後才會釋放埠。當併發請求過多的時候,就會產生大量的TIME_WAIT狀態的連線,不及時斷開將會佔用大量的埠資源。透過最佳化TCP的核心引數,及時清理掉TIME_WAIT狀態的埠。編輯/etc/sysctl.conf並新增引數內容。net.ipv4.tcp_syncookies = 1 表示開啟SYN Cookies。當出現SYN等待佇列溢位時,啟用Cookies來處理,可防範少量SYN攻擊,預設為0表示關閉。net.ipv4.tcp_tw_reuse = 1表示開啟重用。允許將TIME_WAIT sockets重新用於新的TCP連線。預設為0表示關閉。net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連線中TIME_WAIT sockets的快速回收。預設為0表示關閉。net.ipv4.tcp_fin_timeout = 30 表示修改系統預設的TIMEOUT時間。讓核心引數修改生效記得執行命令sysctl –p。

伺服器側還需要進行多路徑的配置,主要是伺服器作業系統自身的多路徑管理軟體和儲存廠商提供的多路徑管理軟體。一般儲存廠商提供的多路徑管理軟體是基於作業系統上的增強。可以透過更豐富的引數配置,靈活配置路徑的選擇演算法,和分配I/O負載。尤其是在儲存雙活的解決方案中,多路徑管理軟體的配合非常重要。

關鍵資料儲存在資料庫中,資料庫側的配置也是非常重要,企業級資料庫的日誌檔案和資料檔案的儲存方式不同,對儲存的要求也不同,例如日誌檔案會存在頻繁的覆蓋寫的操作,如果儲存中有SSD磁碟,就要特別注意SSD磁碟對寫入次數的限制,那麼就需要透過對資料庫引數的調整,來減少磁碟離散寫入,增加磁碟順序寫入的量,並且儘量分佈均勻的寫入磁碟空間。不同的資料庫的資料引擎對儲存的I/O要求差異較大,具體情況請參考資料庫相關文件。

實施中配置步驟參考

OLTP資料庫場景下,儲存配置步驟可參考下表。

表1 OLTP資料庫場景下儲存配置步驟表

來自 “ twt社群 ”, 原文作者:twt社群;原文連結:https://mp.weixin.qq.com/s/2qMooTijtbXu1yQhrx5MKQ,如有侵權,請聯絡管理員刪除。

相關文章