Leo Yeh's Blog

SAS Viya (66)

教學目標

初步了解部署 SAS Viya 中設定 CAS 快取磁碟資料夾 (CAS_DISK_CACHE) 的基本概念。

重點概念

首先 SAS Viya 使用 CAS 伺服器提供高效能和可擴展的運算環境,為了獲得最佳效能,所以我們需要考慮 CAS 快取資料夾的設定,但是如何進行 CAS 快取磁碟資料夾的設定呢?所謂 SAS 雲端分析服務 (Cloud Analytics Services, CAS) 主要是以記憶體分析為主的伺服器。其中 CAS 伺服器主要是使用以區塊為單位組織的記憶體資料,並且對於區塊進行記憶體對應,而這些區塊作為暫時儲存在伺服器的資料夾中,此外 CAS 伺服器又可分為 CAS Controller 伺服器、 CAS Backup Controller 伺服器和 CAS Worker 伺服器,而 CAS Controller 伺服器還會暫時使用 CAS 快取磁碟資料夾來儲存上載的檔案,預設路徑為「/tmp」暫存資料夾不建議用於正式環境,請注意 SAS 僅支援 CAS 快取磁碟資料夾的本地檔案系統,像是 EXT4 和XFS,但是其不支援 GPFS 等網路檔案系統。

接著對於正式環境的 CAS 快取資料夾,我們主要會將 CAS 快取資料夾設定為使用一系列的資料夾,每個部署所需的資料夾大小不同,當指定一系列資料夾時,每次伺服器需要使用磁碟時,其皆會透過跨磁碟分配負載策略使用下一個路徑。除了建立多個檔案系統之外,還應建立具有多個的每個檔案系統,以避免多個執行緒發生競爭使用,分配給 CAS 快取磁碟資料夾總數應至少是伺服器上獲取 CAS 授權 CPU 數的兩倍,像是若 CAS 授權 CPU 數是 32 CPU,則我們會建立 64 個資料夾,並且若有 16 個磁碟,則 1 個磁碟會分配給 CAS Controller 伺服器只需要 1 個資料夾,至於每個 CAS Worker 伺服器則需要 5 個資料夾 ( 64 ÷ ( 16 - 1 ) = 4.2667)。此外我們更能夠透過檔案系統上設定 noatime 和nodiratimemount、nobarrier 掛載選項增加預讀值將會提高效能,以及減少交換記憶體頁面提高效能,主要能夠執行「sudo sysctl -w vm.swappiness = 1」此指令。

再來我們主要有兩種方式更改 CAS 快取磁碟資料夾的路徑,分別為:

  1. 部署 SAS Viya 之前進行設定。
  2. 部署 SAS Viya 之後進行設定。

當我們在部署 SAS Viya 之前,主要會先設定「vars.yml」設定檔中的相關參數設定,請注意為了避免 CAS 磁碟暫存空間可能填滿根目錄檔案系統而導致問題,所以請不要指定與根目錄檔案系統位於同一分區或邏輯卷上的任何目錄。

vars.yml 設定檔中的相關參數設定

1
2
3
CAS_CONFIGURATION:
env:
CAS_DISK_CACHE: /disk1:/disk2:/disk3

其中當我們建立專用於暫存目錄時,這些目錄會由執行 CAS 伺服器的使用者 ID,預設情況下為 cas 帳號所擁有,應在每個 CAS 節點上以相同方式設定每個目錄,所有 CAS 程序必須具有對這些目錄的讀取,寫入和執行權限,所以我們必須先授予透過 SAS 和 Python 等程式界面連接至任何 CAS 伺服器的使用者 ID 所有相關的權限。此外每個 CAS Controller 伺服器和 CAS Worker 伺服器上的目錄結構必須相同,但是 CAS Controller 伺服器不需要與每個 CAS Worker 伺服器有相同的空間量。

最後當我們部署 SAS Viya 之後,主要會設定「casconfig_usermods.lua」設定檔,我們主要可以在 CAS Controller 伺服器中 casconfig_usermods.lua 設定檔進行,而在 CAS Controller 伺服器啟動期間,其主要會將設定分享至每個 CAS Worker 伺服器和 CAS Backup Controller 伺服器進行連線,預設情況設定檔位於「/opt/sas/viya/config/etc/cas/default/」 資料夾路徑中,當我們使用「service sas-viya-cascontroller-default start」命令啟動服務器時,將會讀取此設定檔中的選項。

casconfig_usermods.lua 設定檔中的相關參數設定

1
env.CAS_DISK_CACHE='path [[:path] . . . ]'

相關資源

⬅️ Go back