Ubuntu 18.04 - LXD 3.0をインストールする
参考サイト
作業環境
詳細
SHELL> hostnamectl status Static hostname: lxd.ie-server.info Icon name: computer-vm Chassis: vm ~ Virtualization: kvm Operating System: Ubuntu 18.04.1 LTS Kernel: Linux 4.15.0-32-generic Architecture: x86-64
事前準備
パッケージリストとパッケージを更新
SHELL> sudo apt update && sudo apt list --upgradable && sudo apt upgrade -y
再起動
SHELL> sudo reboot
LXDインストール
apt
を使い、LXD構築に必要なパッケージをインストール
SHELL> sudo apt install -y lxd lxd-client zfsutils-linux bridge-utils criu
フューチャーブランチを利用する場合は、下記コマンドでインストール
SHELL> sudo apt install -t xenial-backports lxd lxd-client zfsutils-linux bridge-utils criu
LXD/LXCのバージョンを確認
lxd --version
/lxc --version
コマンドを実行
SHELL> lxd --version 3.0.1
SHELL> lxc --version 3.0.1
ブリッジインターフェースを作成
「/etc/network/interfaces」にブリッジインターフェースの以下設定を追加
SHELL> sudo vim /etc/network/interfaces
追記する内容
source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 0.0.0.0 auto br0 iface br0 inet static address 172.16.2.100 netmask 255.240.0.0 network 172.16.0.0 broadcast 172.31.255.255 gateway 172.16.0.1 dns-nameservers 8.8.8.8 8.8.4.4 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
ホスト機のリソース制限編集
以下設定を「limits.conf」の末尾に追記
SHELL> sudo vim /etc/security/limits.conf
追記する内容
* soft nofile 1048576 * hard nofile 1048576 root soft nofile 1048576 root hard nofile 1048576 * soft memlock unlimited * hard memlock unlimited
以下設定を「sysctl.conf」の末尾に追記
SHELL> sudo vim /etc/sysctl.conf
追記する内容
fs.inotify.max_queued_events = 1048576 fs.inotify.max_user_instances = 1048576 fs.inotify.max_user_watches = 1048576 vm.max_map_count = 262144
再起動
SHELL> sudo reboot
LXDセットアップ
セットアップ
lxd init
コマンドを実行
SHELL> sudo lxd init Would you like to use LXD clustering? (yes/no) [default=no]: no Do you want to configure a new storage pool? (yes/no) [default=yes]: yes Name of the new storage pool [default=default]: pool-01 Name of the storage backend to use (dir, zfs) [default=zfs]: zfs Create a new ZFS pool? (yes/no) [default=yes]: yes Would you like to use an existing block device? (yes/no) [default=no]: no Size in GB of the new loop device (1GB minimum) [default=18GB]: 18 Would you like to connect to a MAAS server? (yes/no) [default=no]: no Would you like to create a new local network bridge? (yes/no) [default=yes]: yes What should the new bridge be called? [default=lxdbr0]: lxdbr0 What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: auto What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none Would you like LXD to be available over the network? (yes/no) [default=no]: yes Address to bind LXD to (not including port) [default=all]: all Port to bind LXD to [default=8443]: 8443 Trust password for new clients: Again: Would you like stale cached images to be updated automatically? (yes/no) [default=yes] yes Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: no
上記のような入力が面倒な場合は、下記コマンドでもセットアップ可能
※「************」の箇所は、適時パスワードに変更する
SHELL> cat <<EOF | sudo lxd init no yes lxd-storage-pool01 zfs yes no 18 no yes lxdbr0 auto none yes all 8443 ************ ************ yes no EOF
コンテナイメージ取得
ローカルのコンテナイメージ一覧を取得
lxc image list
コマンドを実行
はじめは、コンテナイメージは表示されないはず
SHELL> sudo lxc image list +-------+-------------+--------+-------------+------+------+-------------+ | ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE | +-------+-------------+--------+-------------+------+------+-------------+
リモートのコンテナイメージを検索
lxc image list images: ディストリビューション名
コマンドを実行
(下記では、リモートのCentOSを検索した)
SHELL> sudo lxc image list images: centos +------------------------+--------------+--------+---------------------------------+--------+---------+-------------------------------+ | ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE | +------------------------+--------------+--------+---------------------------------+--------+---------+-------------------------------+ | centos/6 (3 more) | d183363eeba1 | yes | Centos 6 amd64 (20180820_02:16) | x86_64 | 75.55MB | Aug 20, 2018 at 12:00am (UTC) | +------------------------+--------------+--------+---------------------------------+--------+---------+-------------------------------+ | centos/6/i386 (1 more) | a089525a7a67 | yes | Centos 6 i386 (20180820_02:16) | i686 | 75.79MB | Aug 20, 2018 at 12:00am (UTC) | +------------------------+--------------+--------+---------------------------------+--------+---------+-------------------------------+ | centos/7 (3 more) | 2718b6765dda | yes | Centos 7 amd64 (20180820_02:16) | x86_64 | 83.43MB | Aug 20, 2018 at 12:00am (UTC) | +------------------------+--------------+--------+---------------------------------+--------+---------+-------------------------------+
コンテナ作成・一覧取得
コンテナ作成
lxc launch images:イメージ名 コンテナ名
を実行
以下では、CentOS7 64bitのイメージを選択してvm01を作成する場合
※初回はリモートからコンテナイメージを取得するのに時間がかかる
SHELL> sudo lxc launch images:centos/7/amd64 vm01 Creating vm01 Starting vm01
コンテナ一覧を取得
lxc list
を実行
SHELL> sudo lxc list +------+---------+-----------------------+------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+---------+-----------------------+------+------------+-----------+ | vm01 | RUNNING | 10.162.182.150 (eth0) | | PERSISTENT | 0 | +------+---------+-----------------------+------+------------+-----------+
コンテナ操作
コンテナ停止
lxc stop コンテナ名
で該当コンテナを停止
SHELL> sudo lxc stop vm01
lxc list
コマンドで、コンテナ停止を確認
SHELL> sudo lxc list +------+---------+------+------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +------+---------+------+------+------------+-----------+ | vm01 | STOPPED | | | PERSISTENT | 0 | +------+---------+------+------+------------+-----------+
コンテナ起動
lxc start コンテナ名
で該当コンテナを起動
SHELL> sudo lxc start vm01
コンテナにログイン
lxc exec コンテナ名 bash
コマンドを実行
SHELL> sudo lxc exec vm01 bash [root@vm01 ~]#
コンテナ削除
lxc delete コンテナ名
コマンドを実行(コンテナが停止している必要がある)
SHELL> sudo lxc delete vm01
コンテナイメージの作成
SHELL> lxc publish vm01 --alias CentOS7 コンテナは以下のフィンガープリントで publish されます: 7b25b19d8b75fff2dea225bcd6d9580579b0e033f889147405afaf2f810c5d5b
作成したコンテナイメージを確認
SHELL> sudo lxc image list +-------+--------------+--------+---------------------------------+--------+---------+------------------------------+ | ALIAS | FINGERPRINT | PUBLIC | DESCRIPTION | ARCH | SIZE | UPLOAD DATE | +-------+--------------+--------+---------------------------------+--------+---------+------------------------------+ | | 2718b6765dda | no | Centos 7 amd64 (20180820_02:16) | x86_64 | 83.43MB | Aug 20, 2018 at 6:25am (UTC) | +-------+--------------+--------+---------------------------------+--------+---------+------------------------------+