MAAS

MAAS Management, Concepts and Terms

Management summary

MAAS提供了三種方式來管理機器:

  • GUI (web interface): 異於操作的介面、較為基本的設定
  • CLI (text-based terminal): 提供完整(可更進階)的設定、可與API互動
  • API (involves programming): 通常用於大型自動化

Concepts and terms

Deploy

在 GUI 及 Juju 中所指的都是「佈署一個服務或應用(deploy a service or an application)」。

Nodes

maas

Node指的是已經連接在網路上的所有物件(networked object),通常包含下列三者:

  • Controllers
    • region controller: 可被視為是負責做數據中心,其組成如下:
      1. the REST API server
      2. the PostgreSQL database
      3. DNS
      4. caching HTTP proxy
      5. a web UI
    • rack controller: 需要連接到每個“fabric”(下方有詳述)。顧名思義,常見的設置是在每個數據中心架設rack controller,其組成如下:
      1. DHCP
      2. FTP
      3. HTTP (for images)
      4. iSCSI
      5. power management.
  • Machines: 可以被佈署的機器節點
  • Devices: 不能被佈署應用程式的裝置節點

所有的節點都可以指定其父節點,當父節點被刪除時,所有的子節點也得跟著刪除。(可以用來管理 VM 或是在 MAAS 上運行的containers)

  • SAN (Storage Area Network): 儲存區域網路,是一種連線外接儲存裝置和伺服器的架構,架構的特點是,連線到伺服器的儲存裝置,將被作業系統視為直接連線的儲存裝置
  • iSCSI (Internet Small Computer System Interface): Internet小型電腦系統介面,使用 TCP/IP 協定,讓兩個主機通過 IP 網路相互協商然後交換 SCSI 命令。這樣一來,iSCSI 就是用廣域網路模仿了一個高效能的本地儲存匯流排,從而建立了一個SAN。

Zones (physical zones)

Zone 是一個包含了節點的組織型單位,它可協助容錯率(fault-tolerance)以及服務的表現(performance of services)。在 HA 的方面,它們可以被視為 availability zones (AZs)。

Regions

Regions 是一層在Zone之上的組織型單位,它包含任何在此區域(zone)中運行的機器信息(information)。特別是,PostgreSQL 資料庫就是在這個水平上運行,並維護所有機器的狀態。

Fabrics

Fabrics 是一組彼此連接且能互相溝通的 VLANs 集合。

Spaces

Spaces 是一組彼此能互相溝通的子網域羅集群組(logical grouping of subnets)的集合,值得一提的是,在同一個 Space 中的不同 subnets ,不一定附屬於同一個 Fabrics 。


Architectural overview

intro-arch-overview


文章參考資料

  1. MAAS 管理方式介紹
  2. MAAS 概念及術語
  3. wiki – SAN
  4. wiki – iSCSI
  5. MAAS – 架構圖
MAAS

MAAS Overview

What is MAAS?

MAAS 全名為 Metal As A Service,它提供一些介面及方式,讓使用者可以用類似管理雲端虛擬機器(VM)的彈性方式,來管理實體的伺服器(bare metal),此外如 KVM 等虛擬機器也能被視為Node被管理。在此平台上,所有的機器都能夠快速的被調配及摧毀,如同Amazon AWS、Google GCE、Microsoft Azure提供的服務一樣。

MAAS 可以視為一個獨立的 PXE 服務,或者與其他技術相結合。尤其是,它與 Juju (the service and model management service)之間的工作相容性特別好。

完美的組合:使用 MAAS 管理機器(machines),並使用 Juju 管理在這些機器上運行的服務(services)。

MAAS 相當於是 Juju 的 backend (resource pool) ,換句話說也就是 Juju 的 “cloud provider"。 因此在 Juju 所做的操作也會衍伸影響到 MAAS 的狀態。例如: Juju 端移除了一台機器, MAAS 端也會有一台機器被釋放回pool。


What MAAS offers?

MAAS 能夠創建一個額外的單一資源池(single resource pool),去管理大量的實體機器。參與的機器都可以被自動配置(Debian preseed)和正常使用。當不再需要這些機器時,他們也會被釋放回池中。MAAS提供了一些必要的功能,包括:

  • web UI
  • API/CLI support
  • HA(high availability)
  • IPv6 support
  • open source IP address management (IPAM)
  • Ubuntu, CentOS, or Windows installation support
  • inventory of components
  • DHCP and DNS for other devices on the network
  • VLAN and fabric support

How MAAS works?

MAAS 管理節點(a pool of nodes)的流程,簡單分為幾個階段狀態:

  1. “Enlisting" state: 註冊新系統
  2. “Commissioning" state: 預備被用來開啟service
  3. “Ready" state: 已經準備完成
  4. “Allocated" state: 配置給user
  5. “Deployed" state: 佈署service
  6. “Releasing" state: 使用完畢後,可以釋放資源回到pool

MAAS 是透過如 IPMICisco UCS 這樣的介面來管理實體機器。

  • IPMI: 智慧平台管理介面(Intelligent Platform Management Interface),能夠橫跨不同的作業系統、韌體和硬體平台,可以智慧型的監視、控制和自動回報大量伺服器的運作狀況,以降低伺服器系統成本。
  • Cisco UCS: Cisco整合運算系統(Cisco Unified Computing System),與IPMI概念十分接近。

Key components and colocation of all services

MAAS 中最重要的兩個組件是 region controller 與 rack controller ,透過這兩個控制器才能完整的控制所有的部屬工作。
若要達成HA的話,在系統架構下,就要同時存在許多的region controller 與 rack controller。此外,DHCP的配置也是使服務能成功運作的關鍵。


文章參考資料

  1. MAAS 官方文件
  2. MAAS 運作流程
  3. wiki – IPMI