Back to the news overview

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 exportlxc 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 sqlpatch.*.sql に関する情報で database.md を更新しました
  • doc: backup.md 内の snap に関するパスを修正しました
  • global: 最新の gofmt に対応しました
  • global: juju/idmclientCanonicalLtd/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 は ダウンロードページ から取得できます。