lsb.users

lsb.users 檔案用來配置使用者群組、使用者和使用者群組的階層式公平共用,以及使用者和使用者群組的工作時段限制。 它也用來在多叢集環境中配置帳戶對映。

此檔案是選用的。

lsb.users 檔案儲存在 LSB_CONFDIR/cluster_name/configdir目錄中,其中 LSB_CONFDIR 定義在 lsf.conf中。

變更 lsb.users 配置

lsb.users進行任何變更之後,請執行 badmin reconfig 以重新配置 mbatchd

#INCLUDE

語法

#INCLUDE "path-to-file"

說明

將配置設定從另一個檔案插入至現行位置。 使用此指引,透過將併入檔的寫入權提供給特定使用者或使用者群組,將部分配置的控制權專用於其他使用者或使用者群組,並確保不同叢集中配置檔設定的一致性 (如果您使用 LSF 多叢集功能)。

如需相關資訊,請參閱 共用配置檔內容

#INCLUDE 可以在本端配置檔中的任何位置插入。

預設值

未定義。

UserGroup 區段

選用。 定義使用者群組。

使用者群組的名稱可以在其他使用者群組和佇列定義中使用,也可以在指令行上使用。 在 GROUP_MEMBER 區段中指定使用者群組名稱的效果與列出群組中所有使用者的名稱完全相同。

使用者群組總數不能超過 1024。

結構

第一行由兩個必要的關鍵字組成: GROUP_NAMEGROUP_MEMBER。 其他關鍵字是選用的。 後續行會命名群組,並列出其成員資格,以及選擇性地列出其共用指派和管理者。

每一行必須包含每一個關鍵字的一個項目。 使用空括弧 () 或橫線 - 來指定項目的預設值。

限制: 如果指定使用者群組的特定使用者名稱,則該項目必須在所有使用者群組之前。

UserGroup 區段的範例

範例 1:
Begin UserGroup 
GROUP_NAME          GROUP_MEMBER                 GROUP_ADMIN           PRIORITY
groupA              (user1 user2 user3 user4)    (user5[full])          100
groupB              (user7 user8 user9)          (groupA[usershares])   50
groupC              (groupA user5)               (groupA)               50
groupD              (!)                          ()                     10
範例 2:
Begin UserGroup 
GROUP_NAME           GROUP_MEMBER                 GROUP_ADMIN     PRIORITY
groupA               (user1 user2 user3 user4)    (user5)         200
groupB               (groupA user5)               (groupA)        100
groupC               (!)                          ()              50
End UserGroup
範例 3:
Begin UserGroup 
GROUP_NAME   GROUP_MEMBER            USER_SHARES                PRIORITY 
groupB       (user1 use r2)          ()                         100
groupC       (user3 user4)           ([User3,3] [User4,4])      200
groupA       (GroupB GroupC user5)   ([User5,1] [default,10])   50
End UserGroup

Group_Name

代表使用者群組名稱的英數字串。 您無法使用保留名稱 all "/"群組名稱中。

FS_POLICY

語法

(global_fairshare_policy_name ...)

說明

選用。 針對已定義的使用者群組啟用局部 SYNC_MODE 廣域公平共用原則。 它指定共用帳戶將參與的部分 SYNC_MODE 廣域公平共用原則。

預設值

未定義。

範例

Begin UserGroup
GROUP_NAME   GROUP_MEMBER  USER_SHARES          FS_POLICY
group1       (user1 user2) ([default, 10])      (utopia)
End UserGroup

GROUP_MEMBER

使用者群組成員是屬於群組的使用者。 您可以同時指定使用者名稱和使用者群組名稱。

使用者和使用者群組名稱可以出現在多行,因為使用者可以屬於多個群組。

附註: 當使用者屬於多個群組時,指定給使用者所屬之任何群組的任何管理者都可以控制該使用者的工作。 限制管理控制,方法是在 lsb.params 中定義 STRICT_UG_CONTROL=Y ,並使用 -G 選項來提交工作,並指定用來提交工作的使用者群組。

使用者群組可以遞迴地定義,但不得建立迴圈。

語法

(user_name | user_group ...) | (all) | (!)

用括弧括住整個群組成員清單。 請使用空格來區隔多個名稱。

您可以在相同清單中結合使用者名稱和使用者群組名稱。

有效值

全部
保留名稱 all 指定叢集中的所有使用者。
!
驚嘆號 (!) 指出外部定義的使用者群組,由 egroup 執行檔擷取。
user_name
使用者名稱必須是有效的登入名稱。

若要指定 Windows 使用者帳戶,請以大寫字母 (DOMAIN_NAME\user_name) 包含網域名稱。

USER_GROUP
使用者群組名稱可以是先前在此區段中定義的 LSF 使用者群組,或是 UNIX 和 Windows 使用者群組。

如果您指定的名稱既是 UNIX 使用者群組,也是 UNIX 使用者,請附加反斜線以確保它會解譯為群組 (user_group/)。

若要指定 Windows 使用者群組,請以大寫字母 (DOMAIN_NAME\user_group) 來包含網域名稱。

GROUP_ADMIN

使用者群組管理者可以管理群組成員的工作。 您可以同時指定使用者名稱和使用者群組名稱。

  • 如果您指定使用者群組作為另一個使用者群組的管理者,則第一個使用者群組的所有成員都會成為第二個使用者群組的管理者。
  • 您也可以指定群組的所有使用者也是該相同群組的管理者。
  • 使用者可以同時成為多個使用者群組的管理者。
    附註: 當使用者屬於多個群組時,指定給使用者所屬之任何群組的任何管理者都可以控制該使用者的工作。 在 lsb.params 中定義 STRICT_UG_CONTROL=Y ,以在提交工作時將使用者群組管理者控制限制為 -G 指定的使用者群組。

依預設,使用者群組管理者具有相當於工作擁有者的專用權,且容許控制屬於其管理之群組成員使用者的任何工作。 使用者群組管理者也可以回復 LSF 管理者或佇列管理者所停止的工作 (如果工作屬於其使用者群組的成員)。

您可以選擇性地指定每一個使用者群組管理者的其他使用者群組管理者權限。

繼承使用者群組管理者權限。 例如,如果 admin2 具有使用者群組 ugA 的完整權限,且使用者群組 ugB 是 ugA的成員,則 admin2 也具有使用者群組 ugB的完整權限。

限制: 與工作擁有者不同,使用者群組管理者無法執行 brestartbread -a data_file

若要管理安全考量,除非在 lsb.params中定義 STRICT_UG_CONTROL=Y ,否則您無法為任何包含關鍵字 all 的使用者群組指定使用者群組管理者作為成員。

語法

(user_name | user_name[admin_rights] | user_group | user_group[admin_rights] ...)

用括弧括住整個群組管理者清單。 如果您指定使用者或群組的管理者權限,請以方括弧括住它們。

您可以在相同清單中結合使用者名稱和使用者群組名稱。 請使用空格來區隔多個名稱。

有效值

  • user_name

    使用者名稱必須是有效的登入名稱。

    若要指定 Windows 使用者帳戶,請以大寫字母 (DOMAIN_NAME\user_name) 包含網域名稱。

  • USER_GROUP

    使用者群組名稱可以是先前在此區段中定義的 LSF 使用者群組,或是 UNIX 和 Windows 使用者群組。

    如果您指定的名稱既是 UNIX 使用者群組,也是 UNIX 使用者,請附加反斜線以確保它會解譯為群組 (user_group/)。

    若要指定 Windows 使用者群組,請以大寫字母 (DOMAIN_NAME\user_group) 來包含網域名稱。

  • 管理者權限
    • 如果未指定任何權限,則只會將預設工作控制權限提供給使用者群組管理者。
    • usershares: 具有 usershares 權限的使用者群組管理者可以使用 bconf update來調整使用者共用。
    • full: 具備 完整 權限的使用者群組管理者可以使用 bconf 來刪除使用者群組、建立新的使用者群組,以及調整使用者共用、群組成員和使用者群組優先順序。

      具有 完整 權限的使用者群組管理者只能將使用者群組成員新增至使用者群組 (如果他們也具有成員使用者群組的 完整 權限)。

      使用 bconf create 新增使用者群組的使用者群組管理者會自動新增至具有新使用者群組 完整 權限的 GROUP_ADMIN

限制

  • Wildcard and special characters are not supported (for example: *, !, $, #, &, ~)
  • 不支援保留關鍵字 othersdefaultallremote
  • 只有在 lsb.params中定義 STRICT_UG_CONTROL=Y 時,以關鍵字 all 作為成員的使用者群組才能配置使用者群組管理者。
  • 以關鍵字 all 作為成員的使用者群組不能是使用者群組管理者。
  • 使用者群組和使用者群組管理者定義無法遞迴或建立迴圈。

優先順序

選用。 指定在計算絕對工作優先順序排程 (APS) 的工作優先順序時用作因素的優先順序。

有效值

請指定 0 到 2147483646 之間的整數。 值越大代表優先順序越高。

預設值

未定義。

如果針對使用者、使用者群組或應用程式設定檔啟用 APS ,則預設值為 0。

USER_SHARES

選用。 啟用階層式公平共用,並為使用者和使用者群組定義共用樹狀結構。

依預設,當資源集體指派給群組時,群組成員會根據 FCFS 排程來競爭資源。 您可以使用階層式公平共用來進一步劃分群組成員之間的共用。

語法

([usernumber_shares])

指定引數,如下所示:
  • 將清單含括在括弧中,即使您未指定任何使用者共用指派也一樣。
  • 以方括弧括住每一個使用者共用指派,如下所示。
  • 以空格區隔共用指派清單。
  • user: 指定使用者或使用者群組。 您可以將共用指派給:
    • 單一使用者 (指定 user_name)。 若要指定 Windows 使用者帳戶,請以大寫字母 (DOMAIN_NAME\user_name) 包含網域名稱。
    • 群組中的使用者 (指定 group_name)。 若要指定 Windows 使用者群組,請包含大寫字母的網域名稱 (DOMAIN_NAME\group_name)。
    • 不包含在任何其他共用指派中的使用者,個別 (指定關鍵字 default) 或集體 (指定關鍵字 others)。
    附註: 依預設,當資源集體指派給群組時,群組成員會以先到先服務 (FCFS) 為基礎來競爭資源。 您可以使用階層式公平共用來進一步劃分群組成員之間的共用。 當資源個別指派給群組成員時,共用指派會遞迴。 群組及所有子群組的成員一律根據 FCFS 排程來競爭資源,而不論階層式公平共用原則為何。
  • number_shares: 指定正整數,代表指派給使用者的叢集資源共用數。 僅當您將指派給每一個使用者的共用數目與指派給其他使用者的共用或共用總數進行比較時,指派給該使用者的共用數目才有意義。 共用總數只是每個共用指派中所指派所有共用的總和。

使用者區段

選用。 如果未定義此區段,則所有使用者和使用者群組都可以在叢集中執行不限數目的工作。

本節定義使用者或使用者群組可在叢集中同時執行的工作數目上限。 這是為了避免在其他使用者的工作等待時,使用者佔用全部或大部分系統資源的情況。

結構

一個欄位是必要的:USER_NAME.

所有其他欄位都是選用欄位。

如果指定使用者或使用者群組,則必須指定橫線 (-) 來指出預設值 (無限制)。 欄位不能保留空白。

「使用者」區段的範例

Begin User 
USER_NAME   MAX_JOBS   JL/P   MAX_PEND_JOBS     PRIORITY
user1       10          -        1000           200
user2        4          -           -           100
user3        -          -           -           300
groupA      10          1      100000           400
groupA@      -          1         100           200
groupC       -          -         500           100
default      6          1          10             0
End User

USER_NAME

為其定義工作時段限制的使用者或使用者群組。

使用保留使用者名稱 default ,以指定套用至每一個未明確命名之使用者及使用者群組的工作時段限制。 由於使用關鍵字 default 指定的限制也適用於使用者群組,請確定您選取的限制夠高,或明確定義使用者群組的限制。

使用者群組名稱可以是先前定義的 LSF 使用者群組,以及/或 UNIX 和 Windows 使用者群組。 若要指定 Windows 使用者帳戶或使用者群組,請包含大寫字母的網域名稱 (DOMAIN_NAME\user_nameDOMAIN_NAME\user_group)。

工作時段限制適用於整個群組。 附加 at 符號 (@) 群組名稱,使工作槽限制個別套用至群組中的每一位使用者。 如果群組包含子群組,則工作插槽限制也會遞迴地套用至子群組中的每一個成員。

如果群組在使用者清單中包含關鍵字 all ,則 at 符號 (@) 沒有作用。 若要指定包含 all之使用者群組中每一個使用者的工作位置限制,請使用關鍵字 default

工作數上限

叢集的每個使用者或每個群組工作插槽限制。 每一個使用者或使用者群組可在叢集中使用的工作槽總數。

附註: 如果群組包含關鍵字 all 作為成員,則所有使用者和使用者群組都會併入群組中。 為群組設定的每個群組工作插槽限制會套用至整個群組,即使在 lsb.params中設定 ENFORCE_ONE_UG_LIMIT ,也會限制整個叢集。

JL/P

每個使用者或使用者群組的每個處理器工作插槽限制。

每個使用者或使用者群組可以每個處理器使用的工作插槽總數。 針對每個處理器配置此工作插槽限制,以便多處理器主機自動執行更多工作。

此數字可以是部分 (例如 0.5) ,因此它也可以作為每個主機的限制。 此數字會四捨五入至等於或大於主機工作槽限制總計的最接近整數。 例如,如果JL/P是 0.5,在 4 CPU 多處理器主機上,使用者隨時最多只能使用 2 個工作插槽。 在單一處理器機器上,使用者可以使用 1 個工作插槽。

擱置工作數上限

每個使用者或每個群組的擱置工作限制。 這是每一個使用者或使用者群組在系統中可以擁有的擱置中工作總數。 如果使用者是多個使用者群組的成員,則會將使用者的擱置中工作計入使用者具有成員資格之所有群組的擱置中工作限制。

如果 lsb.params 中的 ENFORCE_ONE_UG_LIMITS 設為 Y ,且您在指定使用者群組時提交工作,則即使有重疊的使用者群組成員,也只有該使用者群組 (或任何上層使用者群組) 的限制會套用至工作。

擱置插槽數上限

每個使用者或每個群組的擱置工作時段限制。 這是每一個使用者或使用者群組在系統中可以擁有的擱置工作槽總數。 如果使用者是多個使用者群組的成員,則會將使用者的擱置中工作計入使用者具有成員資格之所有群組的擱置中工作時段限制。

如果 lsb.params 中的 ENFORCE_ONE_UG_LIMITS 設為 Y ,且您在指定使用者群組時提交工作,則即使有重疊的使用者群組成員,也只有該使用者群組 (或任何上層使用者群組) 的限制會套用至工作。

優先順序

選用。 指定在計算絕對工作優先順序排程 (APS) 的工作優先順序時用作因素的優先順序。

有效值

請指定 0 到 2147483646 之間的整數。

預設值

未定義。

如果針對使用者、使用者群組或應用程式設定檔啟用 APS ,則預設值為 0。

UserMap 區段

選用。 僅在具有非統一使用者名稱空間的多叢集環境中使用。 定義使用者及使用者群組的系統層次跨叢集帳戶對映,這可讓使用者從本端主機提交工作,並以遠端主機上的不同使用者身分執行工作。 本端和遠端叢集都必須配置對應的使用者帳戶對映。

結構

下列三個欄位都是必要欄位:
  • 本地部署端
  • 遠端
  • 方向
本端
本端叢集中使用者或使用者群組的清單。 若要指定 Windows 使用者帳戶或使用者群組,請包含大寫字母的網域名稱 (DOMAIN_NAME\user_nameDOMAIN_NAME\user_group)。 以空格區隔多個使用者名稱,並以括弧括住清單:
(user4 user6)
遠端
遠端使用者或使用者群組的清單,格式為 user_name@cluster_nameuser_group@cluster_name。 若要指定 Windows 使用者帳戶或使用者群組,請包含大寫字母的網域名稱 (DOMAIN_NAME\user_name@cluster_nameDOMAIN_NAME\user_group@cluster_name)。 以空格區隔多個使用者名稱,並以括弧括住清單:
(user4@cluster2 user6@cluster2)
方向
指定使用者帳戶是在本端還是遠端執行工作。 必須在本端和遠端叢集上配置雙向。
  • export 關鍵字會將本端使用者/群組配置成以遠端使用者或使用者群組身分執行工作。
  • import 關鍵字會將遠端使用者/群組配置成以本端使用者或使用者群組身分來執行工作。

UserMap 區段範例

在 cluster1:
Begin UserMap 
LOCAL    REMOTE                             DIRECTION 
user1    user2@cluster2                     export 
user3    user6@cluster2    export 
End UserMap
在 cluster2:
Begin UserMap 
LOCAL    REMOTE                             DIRECTION 
user2    user1@cluster1                     import 
user6    user3@cluster1                     import 
End UserMap

Cluster1user1 配置成以 user2 身分執行工作,並將 user3 配置成以 user6身分執行工作。

Cluster2user1 配置為以 user2 身分執行工作,並將 user3 配置為以 user6身分執行工作。

自動時間型配置

變數配置用來根據時間範圍自動變更 LSF 配置。 您可以使用 if-else 建構和時間表示式,在 lsb.users 檔中定義自動配置變更。 變更檔案之後,請使用 badmin reconfig 指令重新配置叢集。

LSF 會根據 mbatchd開始時間,每隔 10 分鐘評估一次表示式。 當表示式評估為 true 時, LSF 會根據相關聯的配置陳述式來動態變更配置。 在不重新啟動 mbatchd的情況下即時完成重新配置,以提供連續系統可用性。

範例

從 12-1 p.m。 每日 (以東部日光節約時間),使用者smith有 10 個工作時段,但在其他時間,使用者只有 5 個工作時段。
Begin User
USER_NAME  MAX_JOBS  JL/P
#if time(12-13 EDT)
smith      10         -
#else
smith       5         -
default     1         -
#endif
End User

指定時區是選用的。 如果您未指定時區, LSF 會使用本端系統時區。 LSF 支援所有標準時區縮寫。