LXD 3.1 リリースのお知らせ¶
15th of May 2018
はじめに ¶
LXD 3.1 は最新の LTS リリース (3.0) に続く初めてのフィーチャーリリースです。
フィーチャーリリースですので、サポート期間は LXD 3.2 が来月リリースされるまでです。
重要なプロダクション環境では、このリリースの代わりに LTS ブランチを使い続けることをおすすめします。
snap をお使いの場合、snap refresh lxd --channel=3.0
と実行することで LTS ブランチを使い続けられます。
LXD ではダウングレードはサポートされないことに注意してください。このため、LXD 3.1 にアップグレードしたシステムは LXD 3.0.0 に戻れません。
Ubuntu ユーザに対する注意 ¶
LXD 3.1 は snap パッケージからのみ利用できます。Ubuntu 18.10 やそれ以前のリリースへのバックポートへの deb パッケージとして、LXD 3.1 を使用できるようにする予定はありません。
これは Ubuntu 18.04 の LXD 3.0.x のユーザには影響しません。バグフィックスとセキュリティフィックスは、Ubuntu 18.04 が EOL に達するまで deb パッケージとしてリリースします。
このリリースに含まれる変更点 ¶
新機能 :
- 新たに backup API と、この API を使ってコンテナをエクスポート・インポートする機能を導入しました。CLI ではこの機能は
lxc export
とlxc import
コマンドです LXD_SOCKET
を使って LXD のソケットパスを指定できるようになりました- 新たに追加された
LXD_UNPRIVILEGED_ONLY
環境変数を使って、特権コンテナの使用を無効化できるようになりました lxd sql
コマンドを改良しました。ローカルとグローバルのデータベースの操作、データベースの作成とスキーマのダンプ、スクリプトから読んだ複数のクエリの実行をサポートしました- 新たに
lxc cluster enable
コマンドを追加しました。既存の LXD サーバを簡単に初期クラスターノードに変換できます - クラスタのユーザが fan overlay をセットアップできるように
lxd init
を拡張しました - 初期ネットワークの自動構成をするように
lxd init --auto
を拡張しました
バグ修正 :
- client: ConnectionInfo に http の URL を追加しました
- client: リモートの操作に対するエラーを改良しました
- doc: データベースのデータやスキーマをダンプする方法を文書化しました
- doc: userns-idmap 内の例を修正しました (Issue #4437)
- doc: Typo や表現の修正を行いました
- doc: s/status command/info command/ (Issue #4527)
- doc:
backup.md
の調整を行いました - doc:
lxd sql
とpatch.*.sql
に関する情報でdatabase.md
を更新しました - doc:
backup.md
内の snap に関するパスを修正しました - global: 最新の gofmt に対応しました
- global:
juju/idmclient
をCanonicalLtd/candidclient
に置き換えました - i18n: weblate から翻訳を更新しました
- lxc: version サブコマンドを追加しました (Issue #4381, Issue #4382)
- lxc: コマンドからの表示に使う用語に一貫性を持たせました
- lxc: 隠しコマンドの指定が間違っていたので修正しました (Issue #4380)
- lxc/action: ポーズの修正を行いました
- lxc/alias: ヘルプ表示の例を修正しました (Issue #4424)
- lxc/config: snap で信頼する証明書を追加する際の問題を修正しました (Issue #4418)
- lxc/copy: クラスタ環境でない場合のみコピーをローカルだとみなすようにしました
- lxc/file: シンボリックリンク先の実体を扱えるように
-r
オプションを追加しました (Issue #4411) - lxc/file: pull のターゲット処理部分のロジックを修正しました
- lxc/file: ファイルのリモートへの push 時の問題を修正しました (Issue #4394)
- lxc/help: help コマンドで
--all
が使えない問題を修正しました (Issue #4406) - lxc/image: 引数のパースの問題でクラッシュする問題を修正しました
- lxc/init: 足りなかった
--no-profiles
オプションを追加しました - lxc/list: API を呼ぶ回数を減らしました
- lxc/main: リモートのキャッシュの問題を修正しました
- lxc/network: ヘルプの typo を修正しました
- lxc/query: 非 JSON エンドポイントのサポートを追加しました (Issue #4452)
- lxc/query:
-d
と-X
オプションの問題を修正しました (Issue #4406) - lxc/remote: list コマンドにフォーマットオプションを追加しました
- lxc/rename: リモートでのリネームが行えるようにしました (Issue #4486)
- lxc/storage_volumes: 色々な問題を修正しました
- lxd: include ファイルとして抜けていた
limits.h
を追加しました - lxd: version サブコマンドを追加しました
- lxd: 起動時のログ出力を増やしました
- lxd:
Daemon.Init()
でのエラー時にログを出力するようにしました (訳注: 実際はInitだけでなくStopのときも) - lxd: lxd デーモンと waitready 間のやりとりをノンブロッキングにしました
- lxd: エラーパラメータの受取を Unavailable にしました
- lxd/cluster: 新たに
cluster.Promote
関数を追加しました - lxd/cluster: 新たに
cluster.Rebalance
関数を追加しました - lxd/cluster: ノードを削除したあとリーダーに通知するようにしましたので、リバランスされます
- lxd/cluster: logger を raft-http に渡すようにしました
- lxd/cluster: プール ID によるノードレベルのストレージ設定を適切にフィルタするようにしました
- lxd/containers: マウントプロパゲーションの設定ができるようになりました
- lxd/containers: 操作の進捗表示ができるようになりました (Issue #4447)
- lxd/containers: unix ドメインソケット経由のホットプラグロジックの問題を修正しました (Issue #4495)
- lxd/containers:
lxc.net
のチェックを修正しました (Issue #4466) - lxd/containers: optional なプロパティのディスクデバイスの問題を修正しました (Issue #4538)
- lxd/containers: スナップショットの消去の問題を修正しました (Issue #4431)
- lxd/database: ディスクから追加でクエリをロードするためのメソッド Schema.File() を新たに追加しました
- lxd/database:
db.ContainersNodeList
を追加しました - lxd/database: スキーマとデータをダンプするための query.Dump を追加しました
- lxd/database: (訳注: クラスタ環境での(だと思う…)) patch.local.sql と patch.global.sql のサポートを追加しました
- lxd/database: クラスタ環境でない場合にグローバルデータベースをバックアップするようにしました
- lxd/database: データベースファイルをリネームしました
- lxd/database: raft のスナップショットをより頻繁に取得し、シャットダウン時にも取得するようにしました
- lxd/db: 空のクエリでクラッシュしなくなりました
- lxd/devices: ソースデバイスのモード (訳注: デバイスファイルのモードビット) をコピーするようにしました (Issue #4534)
- lxd/devices: Nvidia デバイスの情報に Device Minor がない場合の問題を修正しました (Issue #4441)
- lxd/forkfile: 必要なときだけ
O_RDWR
で open するようにしました (Issue #4552) - lxd/init: デフォルトではリモートのストレージプールをセットアップしなくなりました
- lxd/init: パスワードなしの場合のふるまいを説明するようにしました (Issue #4524)
- lxd/init: ネットワーク設定の
--auto
の問題を修正しました - lxd/init: 既存の ZFS が存在する場合のインタラクティブなクラスタへの追加の際の問題を修正しました (Issue #4404)
- lxd/init: 既存のブリッジを設定する場合の
maas.api.url
のチェックの問題を修正しました - lxd/init: 質問をより一貫性があるように修正しました
- lxd/init: 既存のクラスタへの参加には root 権限が必要なのでチェックを行うようにしました (Issue #4451)
- lxd/migration: btrfs のライブマイグレーションの問題を修正しました (Issue #4475)
- lxd/migration: プロファイルを事前チェックするようにしました (Issue #4379)
- lxd/network: fan のサブネット計算ロジックを修正しました
- lxd/patches: "storage_api_path_permissions" を追加しました
- lxd/sql: カスタムのテーブルレンダラーを削除しました
- lxd/sql: 空のクエリ文字列を扱えるようにしました
- lxd/storage: アップグレード時に
zfs.pool_name
も設定するようにしました (Issue #4489) - lxd/storage/btrfs:
doContainerCreate()
を追加しました - lxd/storage/btrfs:
doContainerSnapshotCreate()
を追加しました - lxd/storage/ceph:
doContainerCreate()
を追加しました - lxd/storage/ceph:
doContainerMount()
を追加しました - lxd/storage/ceph: リストア時に確実にファイルシステムの整合性が保てるようにしました
- lxd/storage/ceph: スナップショット取得時に確実にファイルシステムの整合性が保てるようにしました
- lxd/storage:
createContainerMountpoint()
関数内で設定しているパーミッションを修正しました - lxd/storage:
ContainerDelete()
を正しく扱えるようにしました - lxd/storage:
ContainerRename()
を正しく扱えるようにしました - lxd/storage/lvm:
doContainerMount()
を追加しました - lxd/storage/zfs:
doContainerMount()
を追加しました - lxd/storage/zfs:
do*()
ヘルパを追加しました - lxd/sys/fs: s/MkdirAll/Mkdir/g (Issue #4433)
- Makefile: manifest を追加しました (Issue #4421)
- shared: xattr の空の値をサポートするようにしました
- tests: 追加のクリーンアップコードを追加しました
- tests: busybox イメージを修正しました
試用環境 ¶
この新しい LXD のリリースが私たちの デモサービス で利用できます。
ダウンロード ¶
このリリースの tarball は ダウンロードページ から取得できます。
Contents