本章介紹 Solaris Container Manager 3.6.1 (Container Manager)。
本章討論下列主題︰
Solaris Container Manager 3.6 是 Sun Management Center 3.6.1 發行版本的附加軟體產品。本產品可協助您合併伺服器以控制伺服器和軟體的龐大網路支出。Container Manager 可讓您建立和管理容器、專案、資源儲存池和區域。您可更有效率地利用硬體資源並具有較高的伺服器對管理員比例,而這對您是很有益處的。
此產品可讓您執行下列作業:
容器最適用於任何團體,其中使用者需要有自己的虛擬環境,包括 IP 位址、磁碟儲存和應用程式。例如,公司可以為特定應用程式設定容器,例如:郵件伺服器、Web 伺服器或資料庫。公司也可以為地理區域設定容器,例如:美國、美洲、歐洲和亞太地區。同樣地,公司可以為功能性部門設定容器,例如:人力資源、研發和業務。
特定行業可以使用容器或區域來達到各種目的。大學可以將具有作業系統實例、系統資源共用和 root 密碼的區域給予每位大學生。無線公司可以設定容器來監視服務,例如:長途服務、本地電話服務和語音郵件。纜線供應商或網際網路服務供應商可以為 DSL、纜線數據機或有線電視服務設定容器。金融機構可以為執行資料倉儲複雜查詢的使用者和需要線上交易處理的使用者設定個別的容器。獨立軟體供應商 (ISV) 可以為其銷售軟體或服務的個別客戶設定容器或區域。
本產品會組織在 Solaris 8、Solaris 9 和 Solaris 10 發行版本上執行的現有資源管理公用程式。本產品還特別提供工具以簡化 Solaris Resource Manager 1.3 和 Solaris 9 Resource Manager 的配置。
如需關於 Solaris 資源管理公用程式的更多資訊,請參閱「Solaris Resource Manager 1.3 系統管理指南」和「System Administration Guide: Network Services」。
Solaris Container 是一種抽象層,可協助組織和管理實體系統資源集合。容器可讓您建立詳細說明應用程式資源需求的藍圖。應用程式的資源需求是 Solaris Container 模型的重點。此模型著重於服務或工作負荷量。服務是由應用程式 (系統的工作負荷量) 提供。工作負荷量是一組相關聯的程序,例如:執行中的應用程式。
Solaris Resource Manager 1.3 發行版本中曾經實作過早期形式的以工作負荷為基礎之管理。在該發行版本中,工作負荷量是與限制節點 ( lnode) 有關。Container Manager 軟體是以此之前的成果為主而建立。目前的容器模型有提供工具來協助您組織和管理進行中的服務資源傳送。常見的服務範例為每月薪資清單、客戶訂單查詢以及 Web 服務傳送。
您必須要在伺服器合併中說明應用程式受限的環境。建立此說明可讓您從在單一伺服器上執行一個應用程式,變為在單一伺服器上執行許多應用程式。容器會提供此說明並做為其範例。一個簡單的容器可說明某些資訊,例如說明 CPU、實體記憶體和頻寬等的系統資源。一個較複雜的容器可能有更多功能,例如它可能也能控制安全性、命名空間隔離和應用程式錯誤。
下列的 Solaris Container 圖例顯示了服務和資源之間的關係。
方塊代表容器。環繞服務的方塊 x、y 和 z 軸顯示了三種資源。在此模型中,CPU、記憶體和頻寬是基礎資源。由方塊環繞的服務代表容器包含此服務的方式。在此發行版本中,Container Manager 會控制所有三個基礎資源:CPU、實體記憶體資源和頻寬。
因為 Container Manager 著重在工作負荷量,所以不會監視個別主機使用的資源量。主機為已安裝 Container Manager 代理程式軟體的系統,且為 Sun Management Center 伺服器環境的一部分。當安裝完成時,會自動探索到主機,而且在主機檢視中會將其名稱加入瀏覽視窗。此軟體會監視由服務使用的資源量。在此模型中,單一服務實例代表至少有一個在個別主機上執行的程序。資料會保留下來以供可能的系統運作狀態監視和統計所用。
同時可以有數個容器在單一主機上使用。若在單一主機上有多個容器,您可以設定容器界限,讓主機可以展開和收合它們。在此情況下,其他容器目前不在使用中的資源則可為可使用那些資源的容器所用。最後,可在個別主機上使用的容器數量是由可用 CPU 和記憶體資源數量,以及每個容器保留的資源多寡來決定。系統必須要能夠符合所有使用中容器的綜合資源需求,此需求之大小是依應用程式所需而定。
如需關於使用 Container Manager 管理容器的更多資訊,請參閱第 4 章, 管理專案。
一般而言,資源代表可連結程序的作業系統實體,亦經常被視為由提供某種分割形式之核心子系統所建構的物件。資源也可被視為可用來影響應用程式運作方式的一種運算系統觀念。資源範例包括實體記憶體、CPU 或網路頻寬。
在 Solaris 8、Solaris 9 和 Solaris 10 發行版本中,Container Manager 是與資源管理公用程式搭配使用。在 Solaris 8 發行版本中,資源管理是由 Solaris Resource Manager 1.3 所提供。每個服務都由一個 lnode 表示。lnode 是用來記錄資源分配策略和累積的資源使用量資料。lnodes 對應於 UNIX 使用者 ID (UID)。UID 可代表預設的個別使用者和應用程式。如需關於 lnodes 和資源管理的更多資訊,請參閱「Solaris Resource Manager 1.3 System Administration Guide」的「Limit Node Overview」。
在 Solaris 9 和 Solaris 10 發行版本中,資源管理是由資源管理員 (Resource Manager) 所提供。在此發行版本中,專案和 lnode 相似。專案會提供相關工作的整個網路之管理識別碼。在容器執行的所有程序都具有相同的專案識別碼,亦稱為專案 ID。Solaris 核心會透過專案 ID 來追蹤資源使用量。之前的資料可藉由使用延伸統計功能來收集,該功能使用相同的追蹤方法。在 Container Manager 中,專案即代表容器。
關於在容器執行的程序資訊可從 Container Manager GUI 取得。在使用此軟體建立和管理容器時,您可以清楚看見資料的收集。
您可使用不同的方法來建立容器界限。一個方法是使用資源儲存池來分割系統。另一個方法是藉由資源控制在專案上建立限制。
資源儲存池或池是一種 Solaris 9 和 Solaris 10 軟體的配置機制,可用來分割主機資源。資源組是一種可連結程序的資源。資源組的範例包括記憶體組和處理器組。目前只有處理器組才能在 Solaris 9 和 Solaris 10 發行版本使用。池結合了主機上可用的各種資源組。
資源儲存池可以保有一個或數個專案。若有一個專案,連結到池的資源會用於該專案。若有多個專案,連結到池的資源會讓專案共用。
在 Solaris 10 作業系統上,此產品有一個名為動態資源儲存池的功能。動態資源儲存池可藉由讓您依系統事件和載入變更來調整每個池的資源分配,以協助您取得較佳效能。此功能在動態資源區中有詳細說明。
在 Solaris 8 作業系統上執行時,一個主機只能有一個資源儲存池。此池即稱為 pool_default。因為資源儲存池在此作業系統版本中不存在,所以會人為建立 pool_default 。按照慣例,在執行 Solaris 8 發行版本之主機上的所有 CPU 會被視為位於單一儲存池中。
如需關於使用 Container Manager 管理資源儲存池的資訊,請參閱第 5 章, 管理資源儲存池。
若將數個專案與單一儲存池連結,您可以在一個專案上設定保證或限制。這些限制就稱為資源控制。一個控制範例為在使用公平共用排程程式 (FSS) 時,設定最小 CPU 限制。另一個範例則為在使用 rcapd 常駐程式時設定實體記憶體容量。在設定最小 CPU 保證時,某專案中的閒置 CPU 循環可讓其他專案中的應用程式來使用。
區域為執行中的應用程式提供隔離且安全的環境。區域可讓您在 Solaris 實例中建立虛擬化的作業系統環境。區域可讓一或多個程序與系統上的其他程序分開進行。例如,不論使用者 ID 和其他憑證資訊為何,在某個區域內執行的程序只能向同一個區域內的其他程序傳送訊號。若發生錯誤,就僅會影響在區域內執行的程序。
每個 Solaris 10 系統都包含一個一般的全域環境 (就像舊版的作業系統一樣),即稱為全域區域。全域區域有兩項功能:它是系統的預設區域,也是用於管理控制整個系統的區域。若全域管理員沒有建立任何非全域區域 (簡稱為區域),所有的程序就會在全域區域中執行。
全域區域是可配置、安裝、管理或解除安裝非全域區域的唯一區域。只有全域區域可以從系統硬體中啟動。管理功能 (例如實體裝置、路由或動態重新配置 (DR)) 只能在全域區域中進行。在全域區域中以適當權限執行的程序或使用者可以存取與其他區域相關聯的物件。
在全域區域中不具有權限的程序或使用者,也許可以執行在非全域區域中具有權限的程序或使用者所不能執行的作業。例如,在全域區域中的使用者可以檢視系統中每個程序的相關資訊。區域可在維護整體系統安全性時,讓管理員委託某些管理功能。
非全域區域不需要專屬 CPU、實體裝置或者部分的實體記憶體。這些資源可以在單一網域或系統內執行的數個區域間共用。您可以在不影響系統上其他區域的情況下,啟動或重新啟動區域。每個區域可以提供自訂的一組服務。若要強制基本程序隔離,程序可「看到」存在於同區域內的程序,或者僅對那些程序發出訊號。區域之間的基本通訊是由賦予每個區域至少一個邏輯網路介面而啟用的。即使個別的資料封包串流是透過相同的實體介面來傳輸,在一區域中執行的應用程式仍然無法看見另一個區域的網路流量。
每個需要網路連線的區域會被配置一個或數個專屬 IP 位址。
如需關於區域的更多資訊,請參閱「System Administration Guide: Solaris Containers-Resource Management and Solaris Zones」。
若您已在 Container Manager 上安裝效能報告管理程式附加產品,您就可以建立依各個容器、資源儲存池、區域、專案或主機來提供之前資源使用情況資料的報告。CPU 資料、記憶體使用情況資料和 CPU 延伸統計資料會由效能報告管理程式資料收集服務儲存在資料庫中。從 GUI,您可以請求詳細說明資源使用量的圖形報告,或者將資料以逗點分隔值 (CSV) 的格式匯出到文字檔。例如,後者可用於結帳和統計應用程式。
如需更多關於 效能報告管理程式 軟體的資訊,請參閱「 Sun Management Center 3.6.1 Performance Reporting Manager User’s Guide」。如需關於可用報告和統計資料的更多資訊,請參閱關於報告。
在安裝和使用 Container Manager 軟體之前,請先估計資源使用量需求。此為容器建立程序的一部分,您需要提供最小 CPU 保留,並可選擇是否要提供將在容器執行之程序的記憶體容量。若已事先估算好需求、計劃好目標並握有資源規畫,容器建立程序就會簡單得多。此外,在開始之前,一份包含所有所需硬體的規格主要清單也是有很用處的。
一個成功的伺服器合併要素就是有一張要合併的所有伺服器、儲存裝置和應用程式主清單。在完成合併規劃後,就可以開始使用此清單實作您的規劃。
若要在資料中心執行伺服器合併,就需要在安裝和使用 Container Manager 軟體之前先執行數項作業。要執行的部分作業清單包括下列項目:
選擇要合併的應用程式。
識別元件,例如:處理器、使用者群組,或者組成應用程式工作負荷量的使用者。
決定每個已定義工作負荷量的效能需求。此作業包含了監視當前系統上的即時應用程式作業,包括 CPU、記憶體、網路以及儲存需求和使用量。您也需要決定工作負荷量用來配置新系統和有效共用資源的檔案系統、共用檔案系統以及共用程式庫之類型,例如:唯讀檔案系統、程式庫和線上手冊。
依據應用程式需要最多資源和需要資源的時間期間,為要共用系統資源的工作負荷量區分等級。您也需要識別位於相同系統上的競爭工作負荷量。
識別那些工作負荷量所用的專案。專案可當做管理名稱,以用來群組您認為有用的相關工作。例如,您可以為 Web 服務建立一個專案,以及為資料庫服務建立一個專案。
雖然 Solaris 作業系統可以擁有數千個容器,但基於實用目的和為獲得最佳效能,建議您不要擁有超過 200 台主機,每台主機約有 10 個區域,而每個區域則約有 10 個專案即可。
如需關於如何計劃和執行伺服器合併的更多資訊,您可以閱讀由 David Hornby 和 Ken Pepple 所著的 Sun Blueprints 書籍「Consolidation in the Data Center」。
下列範例顯示您可以如何使用 Container Manager。
在此範例中,已有一個預設儲存池和一個區域。接著您要設定一個具有一個資源儲存池和兩個區域的容器。第一個區域 zone_ora1 具有 Oracle 資料庫應用程式,而第二個區域 zone_ws01 則具有 Web 伺服器應用程式。每個資源儲存池都有兩個 CPU。您在容器上設定八份 CPU 共用,四份給 zone_ora1,而三份給 zone_ws01。此容器使用公平共用排程程式。
在此範例中,您要設定一個具有兩個資源儲存池的容器。池 1 已指定了一到三份 CPU。池 1 的載入目標大於 20 %,小於 80 %。 池 2 是由郵件伺服器所用。視郵件伺服器需要的載入而定,其他池是動態的,可使用一到三份 CPU 以供其應用程式所用。
在此範例中,您要設定一個具有兩個區域的容器。第一個區域 zone_ora02 具有七個專案:一個專案用於使用者 ORACLE、一個專案用於群組資料庫管理員執行的任何程序,而五個則為預設專案:system、user.root、noproject、default 和 group.staff。在第一個區域中總共有100 份 CPU 共用。每個預設專案各被指定一份共用。使用者 ORACLE 的第一個專案被指定 75 份共用,group.dba 的第二個專案被指定 20 份共用。
第二個區域 zone_ws_02 是用於 Web 伺服器的區域。
在此範例中,Oracle 10g 應用程式是在數個系統上執行。您在系統 1 上為 Oracle 10g 應用程式建立一個具有一個池和一個區域的專案。接著您將專案與其區域和池複製到第二個系統,並將第二個系統的專案與 Oracle 10g 應用程式建立關聯。
在此範例中,您具有兩個系統,且每個系統皆有兩個池。您在系統 1 有一個 Web 伺服器的專案,且在系統 2 有一個 Web 伺服器的專案。每個專案都有 10 份 CPU 共用,而每個 Web 伺服器分配 5 份共用。其他 5 份共用會保留以供日後使用。
Solaris Container Manager 視作業系統而定,具有以下新功能。
表 1–1 Solaris Container Manager 3.6 的新功能
優點 |
功能 |
Solaris 10 (SPARC 和 x86) |
Solaris 9 (SPARC 和 x86) |
Solaris 8 (SPARC) |
---|---|---|---|---|
隔離並在虛擬作業系統環境中執行程序 |
區域管理 |
是 | ||
設定和取得系統效能目標 |
動態資源儲存池 |
是 | ||
避免網路擁擠 |
網際網路協定服務品質 (IPQoS) |
是 | ||
更有彈性的程序管理 |
可在容器間移動程序 |
是 |
是 | |
時間共用排程程式支援 |
支援其他排程程式類別 |
是 |
是 |
是 |
較佳的虛擬化工具 |
圖形增強功能 |
是 |
是 |
是 |
具有記憶體分配之可區域分別的容器 |
容器增強功能 |
是 |
是 |
是 |
前五項資源物件的使用情況報告 |
圖形增強功能 |
是 |
是 |
是 |
在 Solaris Container Manager 3.6.1 中,加強了區域複製功能。您可在單一主機上建立非全域區域的多個副本或在多重主機上建立非全域區的單一副本。關於更多資訊,請參閱第 6 章, 管理區域的複製非全域區域。
Container Manager 可讓您建立、刪除、修改、停止和重新啟動非全域區域。Container Manager 也會探索現有區域、偵測區域變更、監視和歸檔區域的 CPU、記憶體和網路使用情況,以及產生區域啟動/關閉的警報。
如需關於區域的更多資訊,請參閱第 6 章, 管理區域。
動態資源儲存池會動態調整每個資源儲存池的資源分配,以符合建立的系統效能目標。動態資源儲存池簡化並減少系統管理員需要下的決定次數。 調整會自動進行,以維護由管理員所指定的系統效能目標。
您可以建立、修改和刪除 Solaris 10 系統的動態資源儲存池。在配置動態資源儲存池限制 (例如:最小和最大 CPU、使用情況目標、地區目標和 CPU 共用) 之後,Container Manager 代理程式會依照資源可用性和使用量來動態調整池大小。
資源儲存池配置會儲存在代理程式和伺服器資料庫中。
IP 服務品質功能可協助您為網路使用者提供一致的服務等級以及管理網路流量。此服務可讓您排列、控制和收集網路統計。
此功能會控制 Solaris 區域的頻帶內和頻帶外流量。您要指定區域輸入/輸出網路頻寬的上限。若超出上限,就會停止此套裝模組。因為 IPQoS 會耗用相當多的 CPU 經常性耗用時間量,所以您可選擇是否使用此功能。
Container Manager 會監視並收集工作使用情況資料,並提供之前的網路使用情況圖形。
為了增加程序管理的彈性,Container Manager 3.6 讓您可以在容器間移動程序。在 Solaris 9 系統,您可以在容器間移動程序。在 Solaris 10 系統,您僅可以在同一區域內的容器間移動程序。
Container Manager 1.0 以前僅支援公平共用排程程式 (FSS)。Container Manager 3.6 可讓您在建立或修改資源儲存池時選擇排程程式類別 (公平共用或時間共用)。排程程式類別會判定程序的優先權,決定下個要執行的程序。
在變更資源儲存池的排程程式類別之後,該資源儲存池的新程序會變更為該資源儲存池的排程程式類別。Container Manager 不會變更執行中程序的排程程式類別。
Container Manager 包括下列容器的增強功能:
在 Solaris 10,容器具有區域性的分別。每個區域都有五個預設容器。
您可以為一個容器分配特定數量的共用記憶體。
下表列出本產品中可用的文件資源。如需 Solaris Container Manager 3.6 的文件,請至 http://docs.sun.com/app/docs/coll/810.4。
表 1–2 說明文件資源
作業 |
資源 |
---|---|
安裝與管理容器 |
「安裝和管理 Solaris Container Manager 3.6」(本書) |
從產品存取說明 |
「Solaris Container Manager 3.6 的線上說明」若要存取此說明,請在 Solaris Container Manager GUI 按一下 [說明] 連結。 |
安裝 Sun Management Center 3.6 與其附加產品,包括 Container Manager | |
尋找安裝問題、執行階段問題、最新消息 (包括支援的硬體),以及文件問題 | |
取得搭配 Container Manager 使用的效能報告管理程式 (可選擇的附加產品) 的資訊 |
Sun Management Center 3.6.1 Performance Reporting Manager User’s Guide |
若使用 Solaris 8 作業系統,您應該閱讀 Solaris Resource Manager 1.3 相關資訊 |
「Solaris Resource Manager 1.3 安裝指南」 「Solaris Resource Manager 1.3系統管理指南」 「Solaris Resource Manager 1.3 Release Notes」 |
若使用 Solaris 9 或 Solaris 10 作業系統,您應該閱讀 Solaris 資源管理和區域的相關資訊 |
「System Administration Guide: Solaris Containers-Resource Management and Solaris Zones」 |
若已安裝和設定 Solaris Container Manager,下列連結可協助您快速使用本產品: