hpcsync
從 Windows Azure 記憶體帳戶複製 OPC 套件,並將其解壓縮到 Windows Azure 節點上。
注意事項
此命令是在 HPC Pack 2008 R2 搭配 Service Pack 1 中引進,舊版不支援。
語法
hpcsync [<storageAccountName> <storageKey>] [<packageRoot>] [/packageName:<packageNameFilter>]
[/container:<Container name>] [/blocksize:<blockSize>] [/usehttp]
hpcsync {/? | /help}
參數
在某些情況下,叢集管理員可以執行 clusrun hpcsync ,而不需為 hpcsync
命令指定任何參數。
參數 | 描述 |
---|---|
<storageAccountName> | 指定 Windows Azure 記憶體帳戶的公用名稱(您在 Windows Azure 節點範本中指定的相同記憶體名稱)。 這是帳戶公用 URL 中 <storageAccountName> 的值:https://<storageAccountName>.blob.core.windows.net。 如果您指定 <storageAccountName>,您也必須指定 <storageKey>注意: 如果叢集管理員執行命令 clusrun hpcsync,則不需要指定記憶體帳戶名稱和密鑰。 這些值是由 CCP_AZURE_CONNECTIONSTRING 環境變數所提供(其設定為僅限 clusrun 作業的進程層級)。 如果叢集管理員執行 hpcsync 而不 clusrun,或叢集使用者執行 hpcsync,則必須在命令參數中提供記憶體帳戶資訊。 |
<storageKey> | 指定 Windows Azure 記憶體帳戶的存取金鑰。 如果您指定 storageKey |
<packageRoot> | 指定部署套件的目標根目錄。 當叢集管理員執行 命令時,預設值為 %CCP_PACKAGE_ROOT%。 叢集使用者的預設值是他或她的使用者目錄,%USERPROFILE%\Packages。 若要讓SOA服務和 XL 正常運作,根目錄應該是預設值(%CCP_PACKAGE_ROOT% 或 %USERPROFILE%\Packages)。 %CCP_PACKAGE_ROOT% 環境變數會指向由 Windows Azure 管理的位置。 HPC Pack 會在部署 Windows Azure 節點之後,使用 Windows Azure API 來設定此變數的值。 %CCP_PACKAGE_ROOT% 的值在 Windows Azure 部署中是一致的,但部署之間可能會有所不同。 注意: 將套件上傳至記憶體帳戶時(使用 hpcpack 上傳),您可以定義相對路徑屬性。 如果封裝指定相對路徑,封裝會部署 <至 packageRoot>\<relativePath> - 例如,%CCP_PACKAGE_ROOT%\myDir。 |
/packageName | 指定您要下載的套件。 如果您未指定此參數,則會下載所有 OPC 套件。 |
/容器 | 指定您要從中下載檔案之 Windows Azure 記憶體帳戶中的容器名稱。 如果您未指定此參數,則會從預設位置下載套件:儲存體帳戶中名為 hpcpackages 的容器。 |
/blocksize | 指定在下載時,檔案會以位元組為單位的區塊大小。 默認區塊大小為 4 MB(4194304 個字節)。 4 MB 也是區塊大小上限。 如果您遇到不穩定的網路連線,您可能會想要指定較小的區塊大小。 |
/usehttp | 指定您想要覆寫透過埠 443 的默認 HTTPs 通道,並使用 HTTP over port 80 嘗試通訊。 如果失敗,它會還原為埠 443。 注意: 在 HPC Pack 2008 R2 搭配 Service Pack 3 中引進此參數,而且舊版不支援。 |
/? | 在命令提示字元中顯示說明。 |
/help | 在命令提示字元中顯示說明。 |
備註
hpcsync 可在已加入內部部署叢集 加入內部部署叢集的 Windows Azure 計算資源上, 執行至少Microsoft HPC Pack 2008 R2 SP1,或屬於 Windows Azure HPC Scheduler 部署的 Windows Azure 計算資源。
當您從 HPC Cluster Manager 啟動 Windows Azure 節點時,hpcsync 會自動執行,而且如果任何節點實例在 Windows Azure 維護期間重新佈建,也會自動執行。 此機制可協助確保啟動時節點上有可用的必要檔案,或重新布建節點實例時。 在節點布建執行時,自動 hpcsync 呼叫,而不需要任何參數。 這表示封裝會從記憶體中的預設位置複製到節點上的預設位置。 如需詳細資訊,請參閱本主題稍後 利用應用程式部署的自動 hpcsync 呼叫。
因為它會在高載至 Windows Azure 部署期間自動執行,因此您不一定需要直接執行 hpcsync。 不過,如果您在部署 Windows Azure 節點之後將套件暫存至記憶體,或將套件部署到 Windows Azure HPC 排程器部署,您可以使用 clusrun手動執行 hpcsync。 hpcsync 也提供一些參數來複製不同記憶體容器的套件,以及將封裝部署至替代目標目錄。
hpcsync 非常適合從 Windows Azure 記憶體將 SOA 服務、XLL 檔案和啟動腳本部署到 Windows Azure 節點上的預期位置。 或者,您可以使用 hpcpack 命令(hpcpack 上傳 和 hpcpack 下載)來移動 Windows Azure 記憶體與 Windows Azure 節點之間的其他類型的檔案、應用程式或作業數據。 如需詳細資訊,請參閱 hpcpack。
若要使用此命令,叢集用戶必須知道記憶體帳戶名稱和主要存取密鑰。
範例
若要讓叢集管理員將 Windows Azure 記憶體帳戶上預設容器的所有 OPC 檔案部署到一組 Windows Azure 背景工作節點:
clusrun /nodegroup:AzureWorkerNodes hpcSync
若要讓叢集使用者將所有 OPC 檔案從 Windows Azure 儲存體帳戶 (myContainer) 上的特定容器部署到一組 Windows Azure 節點的預設目錄 (節點 1-3):
job submit /requestednodes:node1,node2,node3 hpcSync myAccount myKey /container:myContainer
若要協助針對檔案部署進行疑難解答,您可以嘗試將檔案部署至本機計算機,C:\temp來測試命令:
hpcsync myAccount myKey C:\temp
利用應用程式部署的自動 hpcsync 呼叫
若要在節點布建期間利用自動 hpcsync 呼叫,您必須將 OPC 套件暫存到 Windows Azure 儲存器帳戶上的 hpcpackages 容器,才能部署節點。 您可以使用 hpcpack 命令來封裝檔案,然後將檔案上傳至 Windows Azure 記憶體。 (根據預設,hpcpack 上傳 會將套件放在 hpcpackages 容器中;如果您不想將套件自動部署至所有 Windows Azure 節點,請指定替代容器。
根據預設,針對叢集系統管理員 hpcsync 會將檔案部署至 Windows Azure 節點上的位置,而該位置是由 %CCP_PACKAGE_ROOT% 環境變數所決定。 此變數會在布建程式期間於 Windows Azure 節點上設定。 擷取的檔案會放在一個資料夾中,決定如下:%CCP_PACKAGE_ROOT%\<packageName>\<uploadTimeStamp>。 這是從節點範本呼叫的SOA服務、XLL、Excel 活頁簿和 啟動 腳本的預期位置。 不過,對於叢集使用者在其命令行中呼叫的應用程式來說,這並不方便。
若要簡化可執行檔的資料夾結構,您可以在將封裝上傳至記憶體時,設定套件的相對路徑屬性。 hpcsync 擷取檔案時套用相對路徑,因此路徑的判斷方式如下:%CCP_PACKAGE_ROOT%\<relativePath>。 然後,使用者可以指定其應用程式的路徑,如下列作業送出命令範例所示:作業提交 %CCP_PACKAGE_ROOT%\myRelativePath\myapp.exe
如需詳細資訊,請參閱 將應用程式部署至 Windows HPC 叢集中的 Windows Azure 節點。
關於 %CCP_PACKAGE_ROOT% 的重要考慮
在 Windows Azure 節點上,%CCP_PACKAGE_ROOT% 資料夾會在 10 GB 磁碟分區上建立。 這表示節點實例上的所有應用程式檔不能超過 10 GB。 如果應用程式有相當大量的輸入和輸出檔案,您可以使用啟動腳本來授與 C:\ 磁碟驅動器的使用者許可權,讓使用者可以寫入節點上的所有可用臨時空間。
當您手動執行 hpcsync 時,您可以覆寫預設位置 (%CCP_PACKAGE_ROOT%)。 例如,您可以在每個 Windows Azure 節點上建立資料夾,然後在 hpcsync執行時指定該位置。 所有套件都會解壓縮到該資料夾。 不過,任何部署的新節點實例(或自動重新布建)都不會包含該資料夾,而且套件會自動部署至預設位置。
叢集使用者只有 %CCP_PACKAGE_ROOT%中資料夾的寫入許可權。 除非您修改 Windows Azure 節點上的資料夾許可權,否則只有叢集管理員可以在 %CCP_PACKAGE_ROOT%之外執行應用程式。
hpcsync 部署套件時,未擷取的檔案具有超過 256 個字元的完整路徑。 擷取檔案暫時放置的根目錄,最後放置最多可能需要 136 個字元,為檔名、子目錄(如果有的話)留下 120 個字元,以及 relativePath (如果指定的話)。 如果擷取檔案的路徑超過 256 個字元,套件部署就會失敗。
請參閱
hpcpack
clusrun
使用 Microsoft HPC Pack 將高載至 Azure 背景工作實例