はじめに
MAASは、UbuntuのCanonicalが提供している、OSのデプロイ等のツールです。
OSは、Ubuntu、CentOS、Windows Serverやその他Linuxが可能です。
ネットワーク内の新規マシンを自動的に発見し、登録や設定をしてくれます。
MaaSには、様々な用語とコンセプトが存在しています。
以下のURLにまとめられているので、それらを理解するために自分訳を残します (理解に誤りがある場合はご指摘頂ければ幸いです)
Nodes
Nodesは一般的な用語で、いくつかの具体的な物を指しています。
Nodesはライフサイクル(追加、試験、割り当て、Deploy)をMaaSによって管理されています。
NodesはNodesPoolに戻るか、破棄されます。
Nodesには以下のものが含まれています
- Controllers
- Machines
- Devices
Controllers
Controllersには2個のTypeが存在しています。
- a region controller
- a rack controller
region controller は、オペレータの要求を処理します。
regionは一般的にはデータセンターといった範囲を管理し、複数の rack controllerを配下に持ちます。
rack controller を配下に持つことで、高帯域な Deployサービスを提供します。
region controller には以下のものが含まれています
- REST API Server
- PostgreSQL
- DNS
- caching HTTP proxy
- web UI
region contoller は、データセンターや単体のリージョンを管理するものと考えることが出来ます。
また、MaaSでは、複数の fabrics を使用して、データセンター内のフロアーといったまとまりを管理することが出来ます。
rack controlelrには以下のものが含まれています
- DHCP
- TFTP
- HTTP (for マシンイメージ)
- power management
1個の rack controllerは、fabricに所属しています。
名前にあるとおり、rack controller は、データセンターのラックを管理することです。
rack controllerはパフォーマンスのためにキャッシュが存在しています。
例えば、OSのInstall Imageなどです。
region controllerも、rack controllerもスケールアウトやHA化が可能です。
Machines
machineはnodeです。MaaSによってDeployされます。
Devices
deviceはDeployされないnodeです。Deviceは routerを追跡するために使用されます。
例えば、devieには、IPアドレスとDNS名を割り当てることが出来ます。
また、Devicesには parent node を割り当てることが出来、parent node が削除やリリースされたときに、自動的に Devices を削除することが出来ます (関連付けられているIPアドレス予約と共に)
これは、Virtual Machine や コンテナを基に考えられており、ホスト側が削除やリリースされたときに、自動的にVMやコンテナに紐づくDeviceを削除する活用方法があります。
Composable hardware
Composable hardware は、haedware resourcesのプール (Disk, Memory, Core) を使用して、動的にHWを構成するアーキテクチャです。
詳細は、以下URL
Pods
Pods or Composable Hardware は、NodeのHWリソースを動的な構成とすることが出来ます (Disk, Memory, Core
Machineの事前構成を必要なしに動的に構成することをRequestすることが出来ます。
モデリングツール (例えばJujuなど) は MaaSへMachneを要求するときにこの機能を利用することが出来ます。
MaaS内から直接RequestしてMachineを自動構成することも出来ます
MaaSは現在以下の2個のアーキテクチャをサポートしています
- Intel Rack Scale Design (RSD)
- Virsh (KVM)
Memo : MaaSは、Intel RSD referense software release v 1.2.5 でのみ検証を行っています。このsoftwareは、Redfish APU v 1.0 と、 RSD PODM API v.1.0 が使用されています。
イメージとして、以下の mass コマンドで Pods から自動構成する内容となっています
maas $PROFILE pod compose $POD_ID \
cores=40 cpu_speed=2000 memory=7812 architecture="amd64/generic"
memo : GPUの有無は選択出来無さそう?
Zone (Availability Zone)
physical zone, or zone は、nodeが所属する組織単位です。zone と node は、1対多の関係です。
zoneからnodeを割り当てることが出来ます。
zoneの使用用途は様々な用途がありますが、主な用途は「可用性」「リソースのパフォーマンス」「電源管理」があります。
- 可用性:複数のZoneに分けてDeployすることで、可用性を上げることが出来ます
- リソースのパフォーマンス:早いマシン、遅いマシンといったZoneを定義することで、使用するZoneを使い分けることが出来ます
- 電源管理:電源を多く消費するサーバを別々のZoneにする使い分けをすることが出来ます
MaaSは新規インストールすると、default zoneを自動作成します。新たなzoneを作成しない場合は、すべてのnodeは default zone に所属します。
従って、Zoneを活用する必要がなければ、Zoneの概念を無視してMaaSを使用することが出来ます。
'default' zone は削除・名前の変更を実施することは出来ません
Regions
Regionはzoneの1レベル上の組織単位です。Regionには全てのZoneに存在する稼働中のMachineが含まれています。
留意点として、PostgreSQLデータベースに1個のRegisonの全てのMachieのstate 情報が含まれています。
Series
Seriesは基本的にOSのバージョンです。Ubuntuでは、SeriesにHWE kernes が含まれています。
実際には、MaaSでMachineをDeployするときに Series を使用して OSイメージが紐づけられてDeployされます。
SeriesはMaaS管理者によって選択されます。
Images
iamgeはMaaSのMachine Provisioning に使用されます。imageは、Seriesで選択されたOSバージョンのものがMaaSへImport されます。
Fabrics
fabric は VLANの名前空間 (区分け)として使用されます。
1個 or 複数の Switchを使用して、同一のVLANを提供する際に MaaS上にNW構成を定義するものとなります。
defaultのfabric 'fabric-X' はMaaSをInstallしたときに検出した各 Subnet ごとに作成されます。
Spaces
Spaceは subnet が相互に通信できる VLAN の論理グループです。各Space内のVLANは同じ fabric に所属する必要はありません。MaaSインストール時にdefault の space は作成されません
spaceの主な使用用途はJujuの自動構成で使用されます。
Tags
tag (VLAN Tagの事ではありません) は、 nodeに付与するプロパティ属性です。
nodeのdeploymentの際にノードを識別する目的で活用することが出来ます。
IP ranges
SubnetのconfigでIPアドレス群(range)を予約することが出来ます。
rangesは2個のTypeが存在します
-
Reserved range
subnetが管理されているか居ないかによって動作が異なります- Managed (subnet) : MaaSはこのIPアドレスの範囲を使用しません (MaaS以外の様々な用途で使用することが出来ます。OpenStackのテナントNW, 外部DHCPなど)
- Unmanaged (subnet) : MaaSはこのIPアドレスの範囲の使用します
-
Reserved dynamic range
- Nodeの状態がenlisting(登録中)、commissining(試験中)、及び試運転中のDHCPに使用されるIPアドレスの範囲です。Defaultの IP range は DHCPを有効にする WebUI の操作で作成されます。Unmanaged iprange で指定している範囲と重複している場合、 Unmanaged range の範囲は Dynamic rangeとして使用されません。