配置可供應的叢集以支援 Liberty 彈性

您可以將群體配置成支援 Liberty 彈性。透過 Liberty 彈性,調整控制器可以將 Liberty 軟體安裝到已登錄的主機上,並建立新的伺服器。此外,由於 Liberty 彈性支援包含 JVM 彈性支援,調整控制器可以根據資源使用率和選用的調整原則,來啟動或停止 Liberty 伺服器。可用的伺服器數目會隨應用程式需求的上升而增加,會隨應用程式需求的降低而縮減。

開始之前

決定您要安裝 Liberty 軟體的目標主機,以及要安裝的 Liberty 軟體。最起碼,您希望調整控制器將下列的可安裝項目和套件檔安裝在目標主機上:

  • 提供獨立式 Liberty 伺服器(含有一個應用程式)的套件。步驟 5c 說明如何建立伺服器套件。
  • 提供 Liberty 伺服器的可安裝項目,其中包含 wlp 目錄,但不包含 usr 目錄。步驟 5a 說明如何建立 Liberty 執行時期保存檔可安裝項目。

每一部目標主機都需要安裝符合 Liberty 伺服器最低需求的 RXA 或 SSH 及「Java 執行時期環境 (JRE)」。請參閱設定 RXA 以執行 Liberty 群體作業設定 Liberty 群體成員和控制器的 JAVA_HOME 變數

如果目標主機沒有安裝 JRE,且其 JAVA_HOME 變數和系統 PATH 變數提供 JRE 路徑,則調整控制器可將 JRE 安裝在目標主機上。步驟 5b 說明如何建立 JRE 保存檔(這是可安裝項目)。

多媒體 觀看:配置可自動調整的叢集,以具備 Liberty 彈性視訊顯示如何配置可供應的叢集。[文字稿]

程序

  1. 將群體配置成支援 Java 虛擬機器 (JVM) 彈性。請確定群體具有至少一個動態叢集成員。

    如需配置含有動態叢集成員的調整控制器的詳細資料,請參閱配置可自動調整的叢集,以具備 JVM 彈性

  2. 請確定每一個現有動態叢集成員所屬的叢集,其名稱採用 StackGroupName.PackageName 命名慣例。

    調整控制器將供應的現有動態叢集成員和伺服器,會是這個叢集的成員。StackGroupName 是共用目錄的名稱,其中保留了調整控制器將根據調整原則,來供應給目標主機的可安裝項目和套件。PackageName 是調整控制器將供應給目標主機之伺服器套件的名稱。

    針對名稱是 myStackGroup.cluster1 的叢集,在每一個現有動態叢集成員的 server.xml 檔中放置下列陳述式:

    <clusterMember name="myStackGroup.cluster1"/>

    您將在這個主題的步驟 5c 和 7 中使用叢集名稱。在步驟 5c 中,請使用 cluster1.zip 作為伺服器套件名稱。在步驟 7 中,請為要部署的可安裝項目和套件建立 myStackGroup 目錄。

  3. 選擇性的: 將調整原則新增至調整控制器。請參閱定義調整原則
  4. 向調整控制器登錄每一部目標主機。

    登錄主機可讓調整控制器將檔案傳送給該主機,以及存取該主機上的檔案、指令和其他資源。使用 registerHost 指令來登錄目標主機。請查看調整控制器的 server.xml 檔,找出 --host--port--user--password 參數的值。如果不想使用 SSH 私密金鑰檔,例如針對 Linux 或 Windows 作業系統上的目標主機,請設定 --rpcUser--rpcUserPassword 參數,以便包含作業系統登入使用者和密碼。--rpcUser 指定的使用者對於目標部署位置必須具備作業系統權限。

    wlp/bin/collective registerHost targetHost --host=controllerHost --port=controllerHTTPSPort --user=controllerAdmin --password=controllerAdminPassword --rpcUser=osUser --rpcUserPassword=osUserPassword

    如果要將檔案傳送給目標主機,不需在指令中包含 --hostWritePath 參數;堆疊供應程式碼會為您設定寫入路徑。如果主機已登錄,您可以使用 updateHost 指令來重設登錄資訊。如需相關資訊,請參閱向 Liberty 群體登錄主機

    如果目標主機位於控制器主機相同的電腦上,您也必須針對控制器主機執行 updateHost 指令。

  5. 建立和配置可讓調整控制器部署到已登錄主機的可安裝項目和套件。

    可安裝項目是您想安裝在已登錄主機上之應用程式需要執行的二進位檔,例如:Liberty 執行時期或 JRE。套件是安裝成壓縮檔的應用程式。

    1. 建立 Liberty 執行時期保存檔,其中包含 wlp 目錄,但不包含 usr 目錄。 這個可安裝項目的命名慣例是 type.name.zip;例如 wlp.855.zip。如果要建立 Liberty 執行時期保存檔,您有下列選擇:
      • 執行 Liberty 伺服器 package 指令,並使用 --include=wlp 選項;例如:
        wlp/bin/server package --include=wlp

        如果要指定檔名和目標位置,請新增 --archive=archive_path_name 選項;例如:

        wlp/bin/server package --include=wlp --archive=c:\temp\wlp.855.zip

        如果您沒有使用 --archive 選項來指定有效的檔名或目標位置,則指令會在 $WLP_OUTPUT_DIR 位置中,建立 wlp.zip 執行時期保存檔,依預設,這個位置是 ${wlp.install.dir}/usr/servers 目錄。執行指令之前,目標位置必須已存在。因此,如果目標位置是 c:\tempC:\temp 目錄必須存在且具備寫入權,這樣指令才能將保存檔寫入至 C:\temp 目錄。

      • 執行含有 --include=all 選項的 package 指令,然後刪除 usr 目錄。package 指令類似如下:
        wlp/bin/server package myServer --include=all --archive=myArchive.zip
      • 建立一個壓縮檔 (.zip),其中包含 wlp 目錄,但不包含 usr 目錄。

      建立 Liberty 執行時期保存檔之後,請確定保存檔名稱遵循命名慣例,wlp.name.zip

    2. 建立或取得 Java 開發套件 (JDK) 和其他任何必要可安裝項目的保存檔。 可安裝項目的命名慣例是 type.name.zip;例如 jre.17.zip。可安裝項目的有效類型值如下:
      • wlp 代表 Liberty 執行時期。
      • jre 代表 Java 執行時期環境。
      • other 代表不同的檔案類型。這是預設值。

      例如,如果要建立 JRE 保存檔,請建立一個壓縮檔 (.zip),內含您 IBM JRE 安裝架構的 java 目錄內容。請勿包含 java 目錄,但是包含 java 目錄中的所有資料夾和檔案。在命名保存檔時,請遵循 jre.name.zip 命名慣例。

    3. 如果要部署 Liberty 伺服器和應用程式,請建立含有 Liberty 伺服器和應用程式的伺服器套件 ZIP 檔。 伺服器套件的命名慣例是 package_name.zip;例如 cluster1。建立伺服器套件時,您可以選擇:
      • 執行 package 指令
        wlp/bin/server package cluster1 --include=usr
        比方說,該指令會建立名為 C:\wlp\usr\servers\cluster1\cluster1.zip 的伺服器套件。
      • 執行含有 --include=all 選項的 package 指令,然後刪除 wlp 目錄。package 指令類似如下:
        wlp/bin/server package cluster1 --include=all --archive=cluster1.zip
      • 建立一個壓縮檔 (.zip),其中包含 usr 目錄,但不包含 wlp 目錄。

      例如,建立名為 cluster1.zip 的伺服器套件,這個套件由含有一個應用程式的獨立式 Liberty 伺服器組成:

      1. 建立伺服器:
        wlp/bin/server create cluster1
      2. 將應用程式複製到 cluster1 伺服器的 dropins 目錄。
      3. 包裝伺服器:
        wlp/bin/server package cluster1 --include=usr
      會建立 wlp/usr/servers/cluster1/cluster1.zip 檔。
      重要: 請確定套件中任何 server.env 檔的環境設定在目標主機上都是有效的。如果設定 JAVA_HOME,必須設為目標主機上的現有位置,以免部署失敗。
  6. 在調整控制器的 server.xml 檔中,為群體控制器或堆疊管理程式,設定一個使用者名稱與密碼。
    <collectiveController user="adminUser" password="adminPassword" />
    <stackManager controllerUser="adminUser" controllerUserPassword="adminPassword" />
  7. 將可安裝項目和套件放在 WLP_STACK_GROUPS_DIR 位置,依預設這是 $WLP_USER_DIR/shared/stackGroups

    調整控制器會監視檔案系統中的可安裝項目和套件預設位置,並對更新項目動態做出反應。如果您將可安裝項目和套件放在預設位置,就不需變更任何預設屬性。

    您可以使用預設堆疊群組 defaultStackGroup。或者,您可以建立自己的 stackGroups 子目錄(例如 myStackGroup),並將它新增至 installablespackages 子目錄。

    wlp/usr
          /servers
          /shared
             ...
             /stackGroups
                /defaultStackGroup
                   /installables
                   /packages
                /myStackGroup
                   /installables
                   /packages

    調整控制器會將可安裝項目和套件部署到已登錄的主機,並建立新的伺服器。

    提示: 只有在啟用調整原則,且需要新伺服器時,才會建立新的伺服器。如果要強制調整控制器建立新的伺服器,請針對調整控制器的調整原則,調整 min 值,可能的話也可以調整 max 值。比方說,如果您的調整控制器沒有調整原則,且您的群體有三個調整成員,請在調整控制器的 server.xml 檔中,新增一項原則,來強制調整控制器至少有四個執行中的成員:
    <scalingDefinitions>
       <defaultScalingPolicy enabled="true" min="4" max="6"/>
    </scalingDefinitions>

    Liberty 彈性的叢集命名慣例是 StackGroupName.PackageName。當部署堆疊時,會在所部署伺服器的 server.xml 檔中,自動設定 <clusterMember name="StackGroupname.PackageName"。對應的 <scalingPolicy> 元素會包含 <bind clusters="StackGroupName.Packagename"/> 陳述式。

    表 1. 可安裝項目和套件的預設位置. Liberty 環境變數會設定預設安裝目錄。如果要置換預設位置,請參閱自訂 Liberty 環境
    檔案 預設安裝目錄
    可安裝項目類型 wlp /wlp
    可安裝項目類型 jre /wlp/jre
    可安裝項目類型 other /wlp/other
    套件 /wlp/usr
  8. 檢查堆疊群組和可安裝項目的配置屬性,並視需要變更您堆疊群組和可安裝項目的配置,以定義 Liberty 供應程序的執行時機與執行位置。您可能需要置換預設配置。

    在調整控制器 server.xml 檔的 stackGroupinstallable 元素中設定新的值,來置換預設配置。如需 stackGroupinstallable 元素的相關資訊,請參閱調整控制器

    以下是置換某些元素預設值的相關提示:

    • installable 元素是定義堆疊群組的可安裝項目。installable 元素可以是 stackGroup 元素的子元素,或是 stackGroup 元素之 installableRef 子元素所參照的同層級元素。
      下列範例顯示如何變更調整控制器 server.xml 檔中的設定,以置換堆疊群組 installable 屬性的預設值:
      <stackGroup name="myStackGroup">
         <installable name="wlp.v8555.zip" sourceDir="c:\myStackGroup\installables"/>
      </stackGroup>
      <stackGroup name="myStackGroup" installDir="/myInstallDir" installableRef="myInstallable1, myInstallable2"/>
      <installable name="wlp.v8555.zip" id="myInstallable1" sourceDir="c:\myStackGroup\installablesOne" />
      <installable name="jre.v1.6.zip" id="myInstallable2" sourceDir="c:\myStackGroup\installablesTwo"/>
    • deployVariable 子元素用來指定替代變數,以注入至所部署的堆疊。您可以指定每次部署堆疊時,替代變數會自動增量。比方說,使用 deployVariable 屬性,來指定起始埠號值,且每次部署時,值就會增量。在這種情況下,deployVariable 的用途是避免目標主機上發生埠衝突。deployVariable 元素會在所部署伺服器的 server.xml 檔中使用算術,來衍生執行時期埠號。

      例如,定義起始埠值和遞增量:

      1. 在套裝伺服器 server.xmlhttpEndpoint 元素中,設定 httpPort="${http.port}"
        <httpEndpoint ... httpPort="${http.port}" />
      2. 在調整控制器 server.xml 檔中,新增 deployVariable 定義,以設定起始埠和增量值:
        <stackGroup name="DefaultStackGroup" installDir="">
          <deployVariable name="http.port" value="9080" increment="1"/>
        </stackGroup>

      之後,每次依序將堆疊部署至主機時,httpPort 值會增加 1。因此,第一次將堆疊部署至 host1 時,HTTP 端點元素是:

      <httpEndpoint ... httpPort="9080" />

      第二次將堆疊部署至 host1 時,元素會是:

      <httpEndpoint ... httpPort="9081" />

      對於 deployVariable 屬性,value 的預設值為 nullincrement 的預設值為 0(零)。

      如果在調整控制器的 server.xml 檔中指定 deployVariable,所部署伺服器的執行時期埠號會是起始埠 value(字串)加 increment(整數)。

    • 如果調整控制器 server.xml 將堆疊群組定義成如下,請不要在 bootstrap.properties 檔中,針對您用來建立伺服器套件的伺服器目錄,再次定義 httpPort。如果您這樣做,會使用 bootstrap.properties 中所定義的 httpPort,而不是 deployVariable 配置元素所產生的。
      <stackGroup name="DefaultStackGroup" installDir="">
        <deployVariable name="http.port" value="9080" increment="1"/>
      </stackGroup>
  9. 選擇性的: 變更調整控制器檢查檔案系統中是否有堆疊群組新增項目、更新項目和刪除項目的間隔。

    調整控制器會掃描 stackGroups 目錄和其子目錄的內容,看看是否有變更。內容變更可能使控制器供應先前沒有可用套件的叢集。更新套件就不會使控制器再次供應現有的叢集。

    依預設,控制器每隔 5000 毫秒(5 秒)會掃描一次 WLP_STACK_GROUPS_DIR 位置。如果要變更掃描間隔或停用掃描,請在調整控制器的 server.xml 檔中,為堆疊管理程式的 scanningIntervalscanningEnable 屬性設定新值。比方說,如果要將掃描間隔設為 6 秒,並啟用掃描,請在調整控制器的 server.xml 檔中,新增類似如下的陳述式:

    <stackManager groupsDir="${wlp.install.dir}/usr/shared/stackGroups/"
                  controllerUser="adminUser" controllerUserPassword="adminPassword"
                  scanningInterval="6000" scanningEnable="true">
    </stackManager>

    如果要停用掃描,請將 scanningEnable 設為 false

  10. 選擇性的: 指示調整控制器掃描檔案系統,以找出新堆疊群組的新增項目、更新項目和刪除項目。

    執行 StackManager MBean 作業,強制調整控制器檢查 WLP_STACK_GROUPS_DIR 位置中是否有堆疊群組的新增項目、更新項目和刪除項目。即使調整控制器 server.xml 檔含有 scanningEnable="false",您仍可以執行 StackManager MBean 作業,強制掃描是否有新增項目、更新項目和刪除項目。

    如需 StackManager MBean 的相關資訊,請參閱 提供的 MBean 清單

  11. 選擇性的: 啟動 IHS,以便能遞送至伺服器。

    為了讓 IBM HTTP Server (IHS) 探索和遞送至動態供應叢集上的 Web 應用程式,請在調整控制器所在的主機上啟用動態遞送。IHS 會從動態遞送服務擷取所供應伺服器的相關遞送資訊。如果啟用伺服器狀態,您可以檢視遞送資訊。

    如果您沒有安裝 IHS,請參閱設定 Liberty 群體的動態遞送。此外,下列視訊示範如何使用 IBM Installation Manager,來安裝動態遞送支援:

    多媒體 觀看:啟用 IHS 以進行 Liberty 動態遞送視訊顯示如何安裝 IHS、安裝 WebSphere Application Server Web 伺服器外掛程式,以及套用「動態遞送」的臨時修正程式。[文字稿]


指示主題類型的圖示 作業主題

檔名:twlp_autoscale_configlibertyelast.html