News

LXD 3.0.3 リリースのお知らせ

22nd of November 2018

はじめに

LXD チームは LXD 3.0.3 のリリースをお知らせできることをうれしく思います!

Stable に対するバグフィックスのためのリリースですので、大きな変更はありません。バグフィックスと細かな使い勝手の改良にフォーカスしています。

ハイライト

snap 環境でのクラスターの更新

LXD クラスターでよく目にする問題は、すべてのノードで同じバージョンの LXD を実行し、同じ API エクステンションを持ち、同じ DB スキーマを持っている必要があるという要件があることです。

あるノードが他よりも新しいバージョンになってしまうと、すべてのデータベースオペレーションは、残りのノードがアップグレードするまで処理が止まります。

多数の別々のマシンの話なので、アップグレードの調整は少しむずかしい問題です。 LXD snap の場合は、ユーザが処理しなければ最大で 24 時間かかることがあります。

これを改良するために、管理者が設定できる LXD_CLUSTER_UPDATE 環境変数を新たに導入しました。 これは関係するパッケージマネージャーを使って、ローカルの LXD デーモンを更新するためのスクリプトを指します。 LXD が別のノードが自分より新しいバージョンになっていることを検出すると、このスクリプトを呼び出し、ローカルの LXD を更新して他のノードと一致させます。

rsync オプションのネゴシエーション

このリリースでは、LXD 3.5、3.6、3.7 で導入した rsync オプションのネゴシエーション機能を含みます。この機能は、様々な LXD リリース間の速やかなマイグレーションに対応できるはずです。

Candid サポートの改良

Candid を使った外部認証が拡張されました。複数のドメインが使えるようなりました。 そして、認証トークンの期限(expiry)が設定できるようになりました(デフォルトは 1 時間)。

大きな組織の管理者は、特定の LXD サーバーでどの Candid ドメインを使うのかを選べるようになりました。 また、ユーザーの Candid 認証トークンを信頼し、更新するまで期間を正確に設定できるようになりました。

関連する設定は次の設定です:

  • candid.domains (カンマ区切りのドメインリスト、デフォルトはすべて許可します)
  • candid.expiry (トークンが有効な期間(秒)。デフォルトは 3600 )

PEM エンコードされたクライアント鍵のサポート

セキュリティを強化するため、LXD で PEM 形式の鍵を使えるようになりました。これにより、openssl を使ってマニュアルで自身の ~/.config/lxc/client.crt を作成でき、LXD は必要に応じてパスワードプロンプトを表示します。

stgraber@castiana:~$ lxc project list s-vorash:
Password for client.crt: 
+-------------------+--------+----------+---------+
|       NAME        | IMAGES | PROFILES | USED BY |
+-------------------+--------+----------+---------+
| default (current) | YES    | YES      | 28      |
+-------------------+--------+----------+---------+

環境変数 LXD_INSECURE_TLS の追加

LXD のイメージサーバと内部通信ではすべて最新の暗号が使えますが、プロキシと企業 CA を使って TLS 通信を傍受し、プロキシ上で TLS 接続を終端させてトラフィックを検査するような企業環境が存在するという報告がありました。

企業 CA がシステムで信頼され、LXD が企業のプロキシを使用するように設定されている限り、このような環境でもうまく動作します。しかし、このようなプロキシの多くは LXD が必要とする最新の暗号が使えず、外向きの TLS 接続が失敗するようです。

このような環境用に、新たに LXD_INSECURE_TLS 環境変数を追加しました。lxdlxc もこれを参照し、暗号に対する要求を緩めるように LXD に指示します。これにより LXD が信頼する暗号の限られた組ではなく、Go のデフォルトの TLS 設定を使うようになります。

exec 操作へのメタデータの追加

これまで lxc operation list で表示される exec セッションは何だろう? と思ったことがありますか?

今後は LXD が exec 操作の一部として記録されているメタデータをいくつか見ることで、あなたがそれを見れるようにしました。

stgraber@castiana:~$ lxc exec xenial -- sleep 30 &
[1] 25911

stgraber@castiana:~$ lxc operation list
+--------------------------------------+-----------+-------------------+---------+------------+----------------------+
|                  ID                  |   TYPE    |    DESCRIPTION    | STATUS  | CANCELABLE |       CREATED        |
+--------------------------------------+-----------+-------------------+---------+------------+----------------------+
| 274ab284-ed07-4834-b3f5-6ec1d7cf3b74 | WEBSOCKET | Executing command | RUNNING | NO         | 2018/11/09 04:20 UTC |
+--------------------------------------+-----------+-------------------+---------+------------+----------------------+

stgraber@castiana:~$ lxc operation show 274ab284-ed07-4834-b3f5-6ec1d7cf3b74
id: 274ab284-ed07-4834-b3f5-6ec1d7cf3b74
class: websocket
description: Executing command
created_at: 2018-11-08T23:20:30.323852365-05:00
updated_at: 2018-11-08T23:20:30.323852365-05:00
status: Running
status_code: 103
resources:
  containers:
  - /1.0/containers/xenial
metadata:
  command:
  - bash
  environment:
    HOME: /root
    LANG: C.UTF-8
    PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
    TERM: xterm
    USER: root
  fds:
    "0": d79593f74c3e566987a3bdb109d2f4102aea5915ad344f64ea665082c1a3177e
    control: 0ed5ba645a9f6f0b2956282bba274ce015407a6309e1a9ec1a897fab0483d6fe
  interactive: true
may_cancel: false
err: ""

これは、実行されたコマンド、その環境変数、それが対話的に実行されたかどうかを記録します。

Bugfixes

  • doc: add note about ignoring mount options
  • shared/idmap: test fcaps support
  • Add a few missing rows.Close() calls
  • lxd/patches: Profiles are in the cluster db
  • lxd/storage/ceph: Only freeze container if running
  • lxc: Only target if --target is passed
  • shared: Return decompressor in DetectCompression
  • lxd/containers: Don't return nil on Storage calls
  • tests: Fix mode of proxy.sh
  • shared/api: Don't re-define fields
  • lxd/storage/btrfs: Fix clearing quotas
  • lxd/containers: Also use apply_quota for CEPH
  • lxd/containers: Simplify and fix pool update logic
  • Add NodeIsOutdated() db API to check is a node is outdated
  • Trigger whatever is in the LXD_CLUSTER_UPDATE var is node is outdated
  • lxd/images: Add missing cleanup code
  • lxd/containers: Fix bad function name
  • tests: Avoid err == nil pattern
  • lxd: Don't mask database errors
  • Honor the CC environment variable when invoking go install
  • client: Avoid err == nil pattern
  • lxd/profiles: Don't list snapshots in UsedBy
  • Make database queries timeout after 10s if cluster db is unavail
  • tests: Fix pki with newer easyrsa
  • lxd/db: Fix internal DB test
  • doc: Fix and improve the description
  • operations: return true if operation is done before timeout
  • lxd/containers: Avoid root device name conflict
  • lxd/import: Add root disk if needed
  • global: Advertise rsync features
  • lxd/db: Use NoSuchObject consistently
  • proxy: Only log errors
  • lxd/import: Don't delete container on import failure
  • i18n: Update translation templates
  • Support --domain flag for lxc remote
  • Add configurable macaroon expiry
  • Support Candid domain validation
  • Update Candid docs
  • Update i18n
  • lxd: Rename API endpoints
  • network_linux: add netns_getifaddrs()
  • main_checkfeature: check kernel for netnsid support
  • network: add NetworkGetCounters()
  • container_lxc: switch to NetnsGetifaddrs()
  • shared: Add network state API
  • api: Add extended cluster join API
  • lxd/init: Fix struct conflict
  • lxc: Identify snapshots when listed
  • shared/version: Support detecting ChromeOS versions
  • lxd/containers: Force bring up of SRIOV parent
  • netns_getifaddrs: fix argument passing
  • netnsid_getifaddrs: fix check for netnsid support
  • doc: Fix storage API endpoints
  • container_lxc: handle network retrieval smarter
  • shared: Add storage volume snapshot support
  • client: Add storage volume snapshot support
  • netns_getifaddrs: don't print useless info
  • shared/api: Fix StorageVolumeSource struct
  • Makefile: Set LDFLAGS for dqlite
  • lxd: Fix handling of CGroup-V2 systems
  • tree-wide: pass -std=gnu11 -Wvla
  • lxd/containers: Rework exec FD handling
  • Added optional ?target= to /containers POST documentation
  • lxd/storage/lvm: Don't un-necessarily start/stop storage
  • lxd/storage/ceph: Don't un-necessarily mount snapshots
  • lxd/containers: Fix cleanup on create failure
  • shared/network: Don't crash on VPN devices
  • lxd/containers: Fix bad nvidia information parsing
  • netns_getifaddrs: fix network stats retrieval
  • network: Fix counters on non-ethernet interfaces
  • doc: Add configuration for readthedocs
  • storage: Fix error strings
  • lxd/storage/btrfs: Don't fail deleting pools on misisng disk
  • Split code in 2 seperate files
  • network: provide #ifdefs for RTM_* requests
  • Document LVM support for storage quotas
  • candid: Cleanup code a bit
  • network: fix netns_get_nsid() signature
  • apparmor: Allow cgroupv2 in cgns
  • candid: Fix client when using https candid server
  • lxd-p2c: Fix static build
  • config: Add support for PEM encrypted keys
  • lxc: Setup password helper
  • lxc/config: Only setup needed connection args
  • lxc/config: More TLS optimizations
  • i18n: Update translation templates
  • macro: add SOL_NETLINK
  • macro: add NETLINK_DUMP_STRICT_CHK
  • netns_ifaddrs: check for NETLINK_DUMP_STRICT_CHK
  • Fix Potential Event Race
  • devices: Fix bad disk limits
  • Fix root disk limits on container startup
  • checkfeature: Rework structure
  • checkfeature: simplify is_netnsid_aware() check
  • checkfeature: Avoid double line break
  • checkfeature: dial logging down from to debug
  • lxc/progress: Add terminal detection
  • doc: Rework backup documentation
  • client: Add GetNetworkState
  • client: Add extended cluster join API
  • client: Add UseProject
  • shared/api: Add projects
  • client: Add support for projects
  • lxc/config: Add support for projects
  • Change query.SelectObjects signature to support a prepared statement
  • Add query.SelectURIs convenience for getting API resource URIs
  • Add cluster statements registry
  • api: Add Project.Config reference
  • Improve some error messages around container creation
  • Lookup for the "target" API parameter only in the URL query string
  • Automatically add ?project=x query param to image server
  • Improve error reporting when creating a container
  • Change ContainerStorageRead() to take a container object instead of its name
  • Improve error messages around LVM volume creation
  • Change Storage.ContainerUmount to accept a container vs a container name
  • lxd/init: Update for current client package
  • lxc/progress: Don't print empty lines
  • candid: Improve domain validation and pubkey
  • lxd/images: Fix parsing of public property
  • client: Always use the "do()" wrapper
  • client: Fix URLs with missing project/target
  • Improve error messages
  • lxd/containers: Fix cluster shutdown
  • i18n: Update Japanese translation
  • idmap: use global variable for vfs3 fcaps support
  • checkfeature: check for vfs3 fscaps support
  • lxd/db: Fix bad limits.cpu
  • shared: Add limits.cpu validator
  • doc: add the appropriate titles to some documents
  • shared/network: Allow TLS1.3
  • global: Implement LXD_INSECURE_TLS env variable
  • netns_getifaddrs: simplify
  • Fix bad check for recursive mounts
  • Prevent event listeners from lying around even after Disconnect()
  • client: Support creating project-bound container using an image on another node
  • client: Filter lifecycle and operations events by project
  • client: Make container backups code honor projects
  • client: Make GET /profiles return only profiles for the project
  • Bump Go versions and use '.x' to always get latest patch versions
  • Update build instruction
  • doc: Bump to 1.10 or higher everywhere
  • Don't expire lxd.log by accident
  • lxd/storage: Fix importing preseed dump
  • lxd/migration: Use current idmap instead of next
  • lxd/db: Send raft/dqlite logging to debug
  • lxd/daemon: Clarify early loggging
  • checkfeature: Don't log error on missing feature
  • lxd/daemon: Improve logging of inherited fds
  • shared/logging: Improve logfile output
  • lxd/daemon: Don't mention MAAS unless configured
  • exec: Expose command, env and mode in metadata
  • client: Fix cancelation of image download
  • Detect and shrink large boltdb files
  • lxd/daemon: Fix build
  • loop: retry on EBUSY
  • lxd/storage: Improve loop device errors
  • lxd/containers: Detect root disk pool changes
  • doc: Update cloud-init network documentation
  • client: Fix error handling in operations
  • lxd/containers: Prevent duplicate profiles
  • lxc/copy: --container-only is meaningless for snapshots
  • shared/api: Add support for incremental container copy
  • client: Add support for incremental container copy
  • doc: Add kernel.keys.maxkeys to production-setup
  • lxd/storage/dir: Don't fail when quota are set
  • lxd: Handle AppArmor policy cache directory
  • test: Support AppArmor policy cache directory
  • lxd/containers: Respect optional=true for disks
  • use empty usb vendorid to pass through all usb devices
  • doc: Add usb_optional_vendorid API extension
  • lxc/image: Fix rootfs file handling on snap
  • lxd/containers: Properly clear static leases
  • shared/api: Support copy between projects
  • client: Support copy between projects
  • lxc/config: Allow overriding the current project
  • rsync: Tweak transfer options (delete & compress)
  • lxd/daemon: Improve logging of kernel features
  • lxd: Register background tasks as operations
  • lxc: Switch all progress op handling to cancelable
  • Increase go-dqlite client timeout when not-clustered
  • lxd: Rework task handling
  • lxd/migration: Fix CRIU rsync option negotiation
  • lxd/storage/btrfs: Tweak errors
  • lxd/init: Better handle disk sizes
  • lxd/db: Avoid un-needed query on container move
  • i18n: Update translation templates
  • Add StorageVolumeIsAvailable to check if a Ceph volume can be attached
  • Wire StorageVolumeIsAvailable to containerValidDevices
  • Add integration test

サポートとアップグレード

LXD 3.0.3 は 2023 年 6 月までサポートされる最新の LTS リリースです。利用可能になった最新のバグ修正リリースに更新することをお勧めします。

ダウンロード

LXD 3.7 リリースのお知らせ

9th of November 2018

はじめに

LXD チームは LXD 3.7 のリリースを発表することにとてもワクワクしています!

このリリースサイクルは、新たに導入した、使用するユーザーが増えてきたプロジェクト機能周辺の問題やエッジケースを修正して開始しました。

しかし、ここ 1 ヶ月まるまるをバグ修正に費やしたわけではなく、LXD 3.7 ではコンテナのリフレッシュ、TLS セットアップの調整をいくつか、exec 操作の改良、VXLAN 設定項目の追加を行いました。

プロジェクト機能の修正に加えて、データベース、ロギングの改良を行い、他に多数のバグ修正を行いました。

新機能

コンテナのリフレッシュ

ローカルもしくはリモートの他のコンテナに基づいて、コンテナをリフレッシュするように LXD に指示できるようになりました。この機能は、新たに追加された --refresh オプションを lxc copy に指定して制御します。

この機能で、本番サーバから定期的に更新を行い、リストアが必要になったときのために、コンテナやスナップショットを同期し続けたり、バックアップサーバからコンテナを起動したりするような、バックアップ LXD サーバを設定するのに使えます。

最初のコピーには通常のマイグレーションコードを使用し、その後の同期ではスナップショットの比較を行い、コピー元から削除されたスナップショットや、同期時点から変更されたスナップショットを削除し、それから足りないスナップショットやコンテナを rsync を使って同期します。

デフォルトの鍵タイプを EC384 に変更

LXD は秘密鍵のアルゴリズムと鍵強度に RSA4096 を選択してきています。これにより、不幸なことに RSA の計算が非常に遅くなることがある CPU アーキテクチャでいくつか問題を引き起こしています。

デフォルトで楕円曲線暗号のキーを使うことに変更することで、秘密鍵のセキュリティを犠牲にせずに、生成時間を大幅に短縮し、この問題を修正します。

これは新たに鍵を生成する際のみの話であり、既存のユーザは RSA 秘密鍵を使い続けます。自身で秘密鍵と証明書を生成し、それを使用するためにファイルシステム上に置くだけで楽に使えることは注目に値するでしょう。

暗号を選択するための環境変数の追加

LXD のイメージサーバと内部通信ではすべて最新の暗号が使えますが、プロキシと企業 CA を使って TLS 通信を傍受し、プロキシ上で TLS 接続を終端させてトラフィックを検査するような企業環境が存在するという報告がありました。

企業 CA がシステムで信頼され、LXD が企業のプロキシを使用するように設定されている限り、このような環境でもうまく動作します。しかし、このようなプロキシの多くは LXD が必要とする最新の暗号が使えず、外向きの TLS 接続が失敗するようです。

このような環境用に、新たに LXD_INSECURE_TLS 環境変数を追加しました。lxdlxc もこれを参照し、暗号に対する要求を緩めるように LXD に指示します。これにより LXD が信頼する暗号の限られた組ではなく、Go のデフォルトの TLS 設定を使うようになります。

exec へのメタデータの追加

これまで lxc operation list で表示される exec セッションは何だろう? と思ったことがありますか?

今後は LXD が exec 操作の一部として記録されているメタデータをいくつか見ることで、あなたがそれを見れるようにしました。

stgraber@castiana:~$ lxc exec xenial -- sleep 30 &
[1] 25911

stgraber@castiana:~$ lxc operation list
+--------------------------------------+-----------+-------------------+---------+------------+----------------------+
|                  ID                  |   TYPE    |    DESCRIPTION    | STATUS  | CANCELABLE |       CREATED        |
+--------------------------------------+-----------+-------------------+---------+------------+----------------------+
| 274ab284-ed07-4834-b3f5-6ec1d7cf3b74 | WEBSOCKET | Executing command | RUNNING | NO         | 2018/11/09 04:20 UTC |
+--------------------------------------+-----------+-------------------+---------+------------+----------------------+

stgraber@castiana:~$ lxc operation show 274ab284-ed07-4834-b3f5-6ec1d7cf3b74
id: 274ab284-ed07-4834-b3f5-6ec1d7cf3b74
class: websocket
description: Executing command
created_at: 2018-11-08T23:20:30.323852365-05:00
updated_at: 2018-11-08T23:20:30.323852365-05:00
status: Running
status_code: 103
resources:
  containers:
  - /1.0/containers/xenial
metadata:
  command:
  - bash
  environment:
    HOME: /root
    LANG: C.UTF-8
    PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
    TERM: xterm
    USER: root
  fds:
    "0": d79593f74c3e566987a3bdb109d2f4102aea5915ad344f64ea665082c1a3177e
    control: 0ed5ba645a9f6f0b2956282bba274ce015407a6309e1a9ec1a897fab0483d6fe
  interactive: true
may_cancel: false
err: ""

これは、実行されたコマンド、その環境変数、それが対話的に実行されたかどうかを記録します。

VXLAN TTL 設定キーの追加

LXD が管理するブリッジに、設定 tunnel.NAME.ttl を追加しました。 これで、マルチキャスト VXLAN トンネルの TTL を設定できるようになりました(デフォルトは 1)。

Bugs fixed

  • backup: Allow backups to not expire
  • client: Always use the "do()" wrapper
  • client: Fix cancelation of image download
  • client: Fix error handling in operations
  • client: Fix URLs with missing project/target
  • doc: Add the appropriate titles to some documents
  • doc: Bump to 1.10 or higher everywhere
  • doc: Update build instruction
  • doc: Update cloud-init network documentation
  • i18n: Update translations from weblate
  • i18n: Update translation templates
  • lxc: Switch all progress op handling to cancelable
  • lxc/copy: --container-only is meaningless for snapshots
  • lxd: Register background tasks as operations
  • lxd: Remove expired container backups
  • lxd: Rework task handling
  • lxd/backups: Set default expiry for backups
  • lxd/checkfeature: Check for vfs3 fscaps support
  • lxd/checkfeature: Don't log error on missing feature
  • lxd/containers: Add ContainerListExpanded to load containers and expand their configs/devices
  • lxd/containers: Associate a container with the profile from its own project
  • lxd/containers: Consider the container's project when loading profiles
  • lxd/containers: Detect root disk pool changes
  • lxd/containers: Expand container devices and configs from the associated project
  • lxd/containers: Fix bad check for recursive mounts
  • lxd/containers: Fix cluster shutdown
  • lxd/containers: Fix lxc exec when using a container inside a project
  • lxd/containers: Fix missing project in args
  • lxd/containers: Improve error messages
  • lxd/containers: Make containers on other nodes visible also in the non-default project
  • lxd/containers: Prefix the container name with the project name when invoking forkconsole
  • lxd/containers: Prevent duplicate profiles
  • lxd/containers: Use liblxc mount injection api
  • lxd/daemon: Clarify early loggging
  • lxd/daemon: Don't expire lxd.log by accident
  • lxd/daemon: Don't mention MAAS unless configured
  • lxd/daemon: Improve logging of inherited fds
  • lxd/daemon: Improve logging of kernel features
  • lxd/db: Add logic to the db package to expand devices
  • lxd/db: Add logic to the db package to load and expand profiles
  • lxd/db: Detect and shrink large boltdb files
  • lxd/db: Fix bad limits.cpu in test
  • lxd/db: Fix listing container backups
  • lxd/db: Increase database timeout when creating indexes in db update 12
  • lxd/db: Increase go-dqlite client timeout when not-clustered
  • lxd/db: Make the db mapper code generator handle compound natural keys
  • lxd/db: Sanitize references to containers table
  • lxd/db: Send raft/dqlite logging to debug
  • lxd/db: Speed up execution of update from v11 of the db
  • lxd/db: Wire expand config logic fromt the db package
  • lxd/db: Wire expand devices logic fromt the db package
  • lxd/events: Prevent event listeners from lying around even after Disconnect()
  • lxd/images: Auto-update images also in projects other than the default one
  • lxd/images: Avoid downloading an image twice if it's already in another project
  • lxd/images: Link an image to a project when downloading it to init a container
  • lxd/images: Support creating project-bound container using an image on another node
  • lxd/main_forkmount: Use pkg-config
  • lxd/main_forknet: Simplify getifaddrs
  • lxd/migration: Use current idmap instead of next
  • lxd/networks: Include containers from all projects in the UsedBy field of a network
  • lxd/patches: Add missing transition for symlinks
  • lxd/profiles: Fix project-aware URIs in the UsedBy field of api.Profile
  • lxd/projects: Fix clustered exec/console
  • lxd/projects: Fix profile updates
  • lxd/projects: Propagate events about all projects to all cluster nodes
  • lxd/projects: Re-create the project default profile when turning on the project profiles feature
  • lxd/storage: Add StorageVolumeIsAvailable to check if a Ceph volume can be attached
  • lxd/storage: Destroy the correct ZFS volume when deleting a container in a project
  • lxd/storage: Fix importing preseed dump
  • lxd/storage: Improve loop device errors
  • lxd/storage: Make custom volumes visible from non-default projects
  • lxd/storage: Retry loop device allocation on EBUSY
  • lxd/storage: Wire StorageVolumeIsAvailable to containerValidDevices
  • rsync: Tweak transfer options (introduce delete & compress)
  • scripts: Add 'project' to bash completion
  • shared: Add limits.cpu validator
  • shared/idmap: Use global variable for vfs3 fcaps support
  • shared/logging: Improve logfile output
  • shared/network: Allow TLS1.3
  • tests: Add integration test for CEPH cross-node volumes
  • tests: Small unrelated cleanup in projects integration test
  • travis: Bump Go versions and use '.x' to always get latest patch versions

Try it for yourself

This new LXD release is already available for you to try on our demo service.

Downloads

The release tarballs can be found on our download page.

LXD 3.6 リリースのお知らせ

11th of October 2018

はじめに

LXD チームは LXD 3.6 のリリースを発表することにとてもワクワクしています!

このリリースは、LXD プロジェクトのような大きな機能や、カスタムストレージボリュームのスナップショット・リストア機能、様々な新しい設定オプションなどの機能を詰め込んだリリースです。

新機能

LXD プロジェクトの導入

LXD プロジェクトは LXD サーバを分割できます。 それぞれのプロジェクトは、それぞれコンテナのリストを持ち、それぞれのプロファイルやイメージを持つこともできます。

作りたいだけプロジェクトを定義でき、lxc project switch コマンドでプロジェクトを簡単に切り替えできます。

現時点では、新たに作られたプロジェクトはすべての機能が有効になっています。プロジェクトは次のものを保持できます:

  • コンテナ
  • イメージ
  • プロファイル

これらの機能の一部が無効化されている場合、デフォルトのプロジェクトから継承されます。

例として、コンテナだけを保持する新しいプロジェクトを作成し、その中でコンテナを起動してみましょう:

stgraber@castiana:~$ lxc list
+-------------+---------+----------------------+----------------------------------------------+------------+-----------+
|    NAME     |  STATE  |         IPV4         |                     IPV6                     |    TYPE    | SNAPSHOTS |
+-------------+---------+----------------------+----------------------------------------------+------------+-----------+
| centos3     | STOPPED |                      |                                              | PERSISTENT |           |
+-------------+---------+----------------------+----------------------------------------------+------------+-----------+
| centos4     | STOPPED |                      |                                              | PERSISTENT |           |
+-------------+---------+----------------------+----------------------------------------------+------------+-----------+
| snapcraft   | RUNNING | 10.166.11.213 (eth0) | 2001:470:b368:4242:216:3eff:fe77:c7f8 (eth0) | PERSISTENT | 1         |
+-------------+---------+----------------------+----------------------------------------------+------------+-----------+
| tutorials   | RUNNING | 172.17.0.1 (docker0) | 2001:470:b368:4242:216:3eff:fea7:1816 (eth0) | PERSISTENT |           |
+-------------+---------+----------------------+----------------------------------------------+------------+-----------+

stgraber@castiana:~$ lxc project list
+-------------------+--------+----------+---------+
|       NAME        | IMAGES | PROFILES | USED BY |
+-------------------+--------+----------+---------+
| default (current) | YES    | YES      | 19      |
+-------------------+--------+----------+---------+

stgraber@castiana:~$ lxc project create demo -c features.images=false -c features.profiles=false
Project demo created
stgraber@castiana:~$ lxc project switch demo

stgraber@castiana:~$ lxc list
+------+-------+------+------+------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+-------+------+------+------+-----------+

stgraber@castiana:~$ lxc launch ubuntu:18.04 c1
Creating c1
Starting c1

stgraber@castiana:~$ lxc list
+------+---------+----------------------+----------------------------------------------+------------+-----------+
| NAME |  STATE  |         IPV4         |                     IPV6                     |    TYPE    | SNAPSHOTS |
+------+---------+----------------------+----------------------------------------------+------------+-----------+
| c1   | RUNNING | 10.166.11.147 (eth0) | 2001:470:b368:4242:216:3eff:fef6:58a8 (eth0) | PERSISTENT |           |
+------+---------+----------------------+----------------------------------------------+------------+-----------+

カスタムストレージボリュームのスナップショット

カスタムストレージボリュームのスナップショットを作成したり管理したりできるようになりました。

stgraber@castiana:~$ lxc storage volume create default data
Storage volume data created
stgraber@castiana:~$ lxc storage volume snapshot default data my-snapshot
stgraber@castiana:~$ lxc storage volume list default
+----------------------+------------------------------------------------------------------+-------------+---------+
|         TYPE         |                               NAME                               | DESCRIPTION | USED BY |
+----------------------+------------------------------------------------------------------+-------------+---------+
| container            | centos3                                                          |             | 1       |
+----------------------+------------------------------------------------------------------+-------------+---------+
| container            | centos4                                                          |             | 1       |
+----------------------+------------------------------------------------------------------+-------------+---------+
| container            | snapcraft                                                        |             | 1       |
+----------------------+------------------------------------------------------------------+-------------+---------+
| container            | tutorials                                                        |             | 1       |
+----------------------+------------------------------------------------------------------+-------------+---------+
| container (snapshot) | snapcraft/snap0                                                  |             | 1       |
+----------------------+------------------------------------------------------------------+-------------+---------+
| custom               | data                                                             |             | 0       |
+----------------------+------------------------------------------------------------------+-------------+---------+
| custom (snapshot)    | data/my-snapshot                                                 |             | 0       |
+----------------------+------------------------------------------------------------------+-------------+---------+
| image                | 0381c3c01c04b937579e0f055f5378a548eefcc18dd928249d4752ac47a6aa08 |             | 1       |
+----------------------+------------------------------------------------------------------+-------------+---------+
stgraber@castiana:~$ lxc storage volume restore default data my-snapshot
stgraber@castiana:~$

新しいボリュームを、スナップショットをコピーして作成できます。

New NVIDIA configuration options

nvidia.runtime と libnvidia-container ライブラリを使っている場合に、いくつか設定できる項目を追加しました。これらの設定は、ほぼ同じ名前の nvidia-container が使う環境変数に変換されます。

  • nvidia.driver.capabilities = NVIDIA_DRIVER_CAPABILITIES
  • nvidia.require.cuda = NVIDIA_REQUIRE_CUDA
  • nvidia.require.driver = NVIDIA_REQUIRE_DRIVER

詳しい情報は nvidia-container-runtime のドキュメント をご覧ください。

lxc list と lxc image list の新しいカラム

lxc list に新しいカラムを追加しました。これはコンテナを作成するのに使ったイメージを表示します。f カラムは短い形式のハッシュ値を、F カラムは長い形式のハッシュ値を表示します。

stgraber@castiana:~$ lxc list -c nfF
+-------------+--------------+------------------------------------------------------------------+
|    NAME     |  BASE IMAGE  |                            BASE IMAGE                            |
+-------------+--------------+------------------------------------------------------------------+
| centos3     | 3265a2551f2a | 3265a2551f2a8b3a08896f0a5b487bc4fa1d2a71fee3220b2077b8a4850d8f7a |
+-------------+--------------+------------------------------------------------------------------+
| centos4     | d22c637f6420 | d22c637f6420570b0b6d5a4ad687672a59d6f13acd19ad07901a47469ea78137 |
+-------------+--------------+------------------------------------------------------------------+
| snapcraft   | 3e50ba589426 | 3e50ba589426c21f26370e2f949f30210f2d0419fbb9d4d4a0f860a035373353 |
+-------------+--------------+------------------------------------------------------------------+
| tutorials   | d72ae2e5073f | d72ae2e5073f20450c5260e6f227484c23452a46c6bb553ffe6be55e48602bb4 |
+-------------+--------------+------------------------------------------------------------------+

同様に、F カラムを lxc image list に追加しました。

stgraber@castiana:~$ lxc image list -c fFd
+--------------+------------------------------------------------------------------+---------------------------------------------+
| FINGERPRINT  |                           FINGERPRINT                            |                 DESCRIPTION                 |
+--------------+------------------------------------------------------------------+---------------------------------------------+
| 5ceb96c7eb29 | 5ceb96c7eb29ed3bf971cca95e4f9c7c95b7fcb1528e2733fca143e3908a384d | ubuntu 18.10 amd64 (daily) (20181010)       |
+--------------+------------------------------------------------------------------+---------------------------------------------+
| c966933fdfd3 | c966933fdfd390d301fed3447528e2f910bf72c0615b2caaf3235a791fed3541 | ubuntu 16.04 LTS amd64 (release) (20181004) |
+--------------+------------------------------------------------------------------+---------------------------------------------+
| d72ae2e5073f | d72ae2e5073f20450c5260e6f227484c23452a46c6bb553ffe6be55e48602bb4 | ubuntu 18.04 LTS amd64 (release) (20181003) |
+--------------+------------------------------------------------------------------+---------------------------------------------+
| ef20901f9494 | ef20901f94946ebe05e05c63f54fda8e366ca47677b55e9c021527065c11459c | ubuntu 16.04 LTS i386 (release) (20181004)  |
+--------------+------------------------------------------------------------------+---------------------------------------------+

CGroupV2 のみのシステムの基本サポート

CGroupV2 のみが有効になったシステム上で、LXD が正しく起動し、ほとんどのコンテナ操作が期待通りに動くようになりました。

CGroupV2 のみのシステム上でのリソース制限は、適用されないことに注意してください。 CGroupV1 と同じ機能になるには、まだかなりの作業が必要です。

security.unmapped ストレージボリュームプロパティの追加

新たに security.unmapped プロパティをストレージボリュームに追加しました。 最初のコンテナにカスタムボリュームをアタッチし、LXD が再マップします。それからこのプロパティを設定します。もし、uid/gid のマッピングに不一致があっても、他の多数のコンテナにそのカスタムボリュームをアタッチできるようになります。

このプロパティを設定しないと、uid/gid がマッチしないため、LXD はボリュームのアタッチを拒否します。設定すると、アクセスを許可するために少し広いファイルパーミッションを使ったり、様々なコンテナのために POSIX ACL をいくつか設定したりできます。

PEM エンコードされたクライアント鍵のサポート

セキュリティを強化するため、LXD で PEM 形式の鍵を使えるようになりました。これにより、openssl を使ってマニュアルで自身の ~/.config/lxc/client.crt を作成でき、LXD は必要に応じてパスワードプロンプトを表示します。

stgraber@castiana:~$ lxc project list s-vorash:
Password for client.crt: 
+-------------------+--------+----------+---------+
|       NAME        | IMAGES | PROFILES | USED BY |
+-------------------+--------+----------+---------+
| default (current) | YES    | YES      | 28      |
+-------------------+--------+----------+---------+

USB デバイス用の uevent インジェクション

最近のカーネルでは、LXD で USB デバイスをセットアップしたコンテナに、追加・削除、バインド・アンバインドの uevent を転送し、udev ルールを使ったり、uevent をリスンする他のソフトウェアを使ったりできるようになりました。

電話を接続した場合の例を次に示します:

stgraber@castiana:~$ lxc exec tutorials udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[894420.794945] add      /devices/pci0000:00/0000:00:1d.0/0000:06:00.0/0000:07:02.0/0000:3c:00.0/usb3/3-1/3-1.1/3-1.1.4/3-1.1.4.1 (usb)
UDEV  [894420.796425] add      /devices/pci0000:00/0000:00:1d.0/0000:06:00.0/0000:07:02.0/0000:3c:00.0/usb3/3-1/3-1.1/3-1.1.4/3-1.1.4.1 (usb)
KERNEL[894420.809028] bind     /devices/pci0000:00/0000:00:1d.0/0000:06:00.0/0000:07:02.0/0000:3c:00.0/usb3/3-1/3-1.1/3-1.1.4/3-1.1.4.1 (usb)
UDEV  [894420.810630] bind     /devices/pci0000:00/0000:00:1d.0/0000:06:00.0/0000:07:02.0/0000:3c:00.0/usb3/3-1/3-1.1/3-1.1.4/3-1.1.4.1 (usb)

ネットワーク情報の最適化された取得

近く追加される netlink API のサポートを LXD に追加しました。 これにより、サブプロセスを使うことなく、名前空間を切り替えることもなく、すべてのコンテナの情報を取得できるようになりました。

これらの新しい API をサポートするカーネル上のシステムでは、lxc list で最大 40% のパフォーマンス改善が見られます。

バグ修正

  • client: Fix client when using HTTPs candid server
  • client: Fix Potential Event Race
  • doc: Add configuration for readthedocs
  • doc: Added optional ?target= to /containers POST documentation
  • doc: Document LVM support for storage quotas
  • doc: Fix storage API endpoints
  • doc: Rework backup documentation
  • global: Pass -std=gnu11 -Wvla
  • i18n: Update translations from weblate
  • lxc/config: More TLS optimizations
  • lxc/config: Only setup needed connection args
  • lxc/import: Fix error handling
  • lxc/progress: Add terminal detection
  • lxc/progress: Don’t print empty lines
  • lxc/storage: Identify snapshots when listed
  • lxd: Fix handling of CGroup-V2 systems
  • lxd: Lookup for the “target” API parameter only in the URL query string
  • lxd/candid: Cleanup code a bit
  • lxd/candid: Improve domain validation and pubkey
  • lxd/containers: Fix bad nvidia information parsing
  • lxd/containers: Fix cleanup on create failure
  • lxd/containers: Fix root disk limits on container startup
  • lxd/containers: Force bring up of SRIOV parent
  • lxd/containers: Improve error reporting when creating a container
  • lxd/containers: Improve some error messages around container creation
  • lxd/containers: Rework exec FD handling
  • lxd/containers: Use the ID field from db.Container directly
  • lxd/db: Add cluster statements registry
  • lxd/db: Add query.SelectURIs convenience for getting API resource URIs
  • lxd/db: Change query.SelectObjects signature to support a prepared statement
  • lxd/db: More efficient profile delete API handler
  • lxd/db: Switch over to code generation
  • lxd/db: Use ClusterTx.ProfileDelete instead of Cluster.ProfileDelete
  • lxd/db: Use ClusterTx.ProfileRename instead of Cluster.ProfileUpdate
  • lxd/db: Use tx.ProfileCreate() instead of db.ProfileCreate()
  • lxd/devices: Fix bad disk limits
  • lxd/images: Fix parsing of public property
  • lxd/nvidia: Default to compute,utility
  • lxd-p2c: Fix static build
  • lxd/storage/btrfs: Don’t fail deleting pools on misisng disk
  • lxd/storage/ceph: Don’t un-necessarily mount snapshots
  • lxd/storage: Change ContainerStorageReady() to take a container struct
  • lxd/storage: Change ContainerUmount to accept a container struct
  • lxd/storage: Fix some storage URLs in API
  • lxd/storage/lvm: Don’t un-necessarily start/stop storage
  • lxd/storage/lvm: Improve error messages around LVM volume creation
  • Makefile: Set LDFLAGS for dqlite
  • shared/network: Don’t crash on VPN devices
  • shared/version: Support detecting ChromeOS versions
  • storage: Fix error strings

試用環境

この新しい LXD リリースは私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 3.5 リリースのお知らせ

11th of September 2018

はじめに

LXD チームは LXD 3.5 のリリースを発表することにとてもワクワクしています!

あなたはおそらく、通常の機能変更と比べて小さい変更であることに気づくでしょう。 これは、取り組んでいる作業の中には単一のリリースサイクルの中には収まらないほど大きな作業があるので、LXD 3.6 か 3.7 でのリリースを目指すことにしたからです。 また、カンファレンスシーズンが始まるからでもあります。

このリリースには、特にクラスターを使っていたり、エンタープライズユーザーのための多数の待望の改良や、多数のバグ修正とパフォーマンスの改良が含まれています。

新機能

外部の Candid 認証用の設定オプションの追加

Candid を使った外部認証が拡張されました。複数のドメインが使えるようなりました。 そして、認証トークンの期限(expiry)が設定できるようになりました(デフォルトは 1 時間)。

大きな組織の管理者は、特定の LXD サーバーでどの Candid ドメインを使うのかを選べるようになりました。 また、ユーザーの Candid 認証トークンを信頼し、更新するまで期間を正確に設定できるようになりました。

関連する設定は次の設定です:

  • candid.domains (カンマ区切りのドメインリスト、デフォルトはすべて許可します)
  • candid.expiry (トークンが有効な期間(秒)。デフォルトは 3600 )

コマンドラインクライアントの --quiet オプション

ついに、すべての進捗情報を抑制し、エラーメッセージのみ出力する --quiet オプションが導入されました。 スクリプトから lxc コマンドを使うユーザが歓迎する機能でしょう。

バックアップの圧縮が設定可能に

この LXD リリースでは、バックアップの保存方法と処理方法を手直ししました。 このほとんどは日々のオペレーションでは見えませんが、バックアップの取得を大幅に高速化し、メモリの消費も抑えます。

この変更の目に見える変化のひとつは、バックアップをどのように圧縮するかを制御するオプションです。

新しい設定は次の設定です:

  • backups.compression_algorithm (デフォルトは "gzip" )

クラスター全体に対するリリースの更新を扱うフック

LXD クラスターでよく目にする問題は、すべてのノードで同じバージョンの LXD を実行し、同じ API エクステンションを持ち、同じ DB スキーマを持っている必要があるという要件があることです。

あるノードが他よりも新しいバージョンになってしまうと、すべてのデータベースオペレーションは、残りのノードがアップグレードするまで処理が止まります。

多数の別々のマシンの話なので、アップグレードの調整は少しむずかしい問題です。 LXD snap の場合は、ユーザが処理しなければ最大で 24 時間かかることがあります。

これを改良するために、管理者が設定できる LXD_CLUSTER_UPDATE 環境変数を新たに導入しました。 これは関係するパッケージマネージャーを使って、ローカルの LXD デーモンを更新するためのスクリプトを指します。 LXD が別のノードが自分より新しいバージョンになっていることを検出すると、このスクリプトを呼び出し、ローカルの LXD を更新して他のノードと一致させます。

バグ修正

  • client: err == nil のパターンを避けました(訳注: 条件文の判断順を変えた)
  • doc: record-output が true の場合の exec の例を追加しました
  • doc: マウントオプションを無視する事に関する注意書きを追加しました
  • doc: 説明の修正と改良を行いました(訳注: ネットワークの制限の表の説明欄のパラメータ名が間違っていたのを修正)
  • global: rsync の機能を知らせるようになりました
  • i18n: Weblate からの翻訳の更新を行いました
  • i18n: 翻訳テンプレートを更新しました
  • lxc: --target が与えられた時だけ target を使うようになりました
  • lxc/export: バックアップの削除に失敗したときにクラッシュしなくなりました
  • lxd: データベースのエラーを出力するようにしました
  • lxd/api: エンドポイントのリストをソートするようにしました
  • lxd/backups: 意図した通りに動作するように書き直しました(訳注: tarball生成タイミングの変更、重複コードの削除、既存のバックアップを変換するコードの追加)
  • lxd/cluster: 新しいコンテナを配置する際にペンディング状態のコンテナを考慮するようにしました
  • lxd/cluster: データベースクエリーのタイムアウトを 10 秒後にしました
  • lxd/containers: Ceph でも apply_quota を使うようにしました
  • lxd/containers: ルートデバイス名の衝突を回避するようにしました
  • lxd/containers: Storage 関数の呼び出しで nil が返らないようにしました
  • lxd/containers: 不適切な関数名を修正しました
  • lxd/containers: プールを更新するロジックを修正し、簡素化しました
  • lxd/db: 何箇所か足りなかった rows.Close() の呼び出しを追加しました
  • lxd/db: ノードの API バージョンが古いかどうかをチェックするデータベース API である NodeIsOutdated() を追加しました
  • lxd/db: operations テーブルに type カラムを追加しました
  • lxd/db: DB の内部テストを修正しました
  • lxd/db: 一貫して NoSuchObject を使うようにしました
  • lxd/devices: GPU のために /sys/class/drm をイテレートするようにしました
  • lxd/forkdns: 適切に応答を書き換えるようにしました
  • lxd/images: 足りなかったクリーンアップのコードを追加しました
  • lxd/import: 必要であれば root ディスクを追加するようにしました
  • lxd/import: インポートが失敗した時にコンテナを削除しないようにしました
  • lxd/operations: 新しい操作を追加するときに type カラムを埋めるようにしました
  • lxd/operations: タイムアウト前に操作が完了した場合は true を返すようにしました
  • lxd/patches: プロファイルはクラスター DB の方を見るようにしました
  • lxd/profiles: UsedBy 内にはスナップショットをリストしないようにしました
  • lxd/proxy: スナップでの unix ソケットのパスを修正しました
  • lxd/proxy: エラーのみログするようにしました
  • lxd/storage/btrfs: クォータをクリアする際の処理を修正しました
  • lxd/storage/ceph: コンテナが実行中の時のみフリーズするようにしました
  • Makefile: go install の際に CC 環境変数を使用するようにしました
  • scripts: オートコンプリートを更新しました
  • shared/api: フィールドを複数回定義しないようにしました
  • shared/idmap: fscap サポートのテストを追加しました
  • shared: DetectCompression が展開コマンドを返すようになりました
  • tests: stop の際は常に --force を与えるようにしました
  • tests: err == nil パターンを避けるようにしました
  • tests: proxy.sh のモードを修正しました
  • tests: 新しい easyrsa を使う場合の pki テストを修正しました

試用環境

この新しい LXD リリースは私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 3.0.2 リリースのお知らせ

21st of August 2018

はじめに

LXD チームは LXD 3.0.2 のリリースをお知らせできることをうれしく思います!

Stable に対するバグフィックスのためのリリースですので、大きな変更はありません。バグフィックスと細かな使い勝手の改良にフォーカスしています。

ハイライト

コンテナのスナップショットとバックアップのネーミングの修正

従来は、すべてのスナップショットとバックアップの name プロパティは、コンテナ名に続いてスラッシュが続き、その後にスナップショットもしくはバックアップ名が続いていました。

これは、特定のコンテナを検索することでしかこの情報を得ることができなかったため、冗長でした。

API はスナップショットもしくはバックアップ名のみ返すようになりました。しかし LXD は、既存のバックアップのマイグレーションやリストアもできるように、依然として古い形式も認識します。

新しい dqlite の実装に切り替わりました

LXD 3.0 で使い始めた分散 sqlite3 実装である dqlite を、多数のパフォーマンス上のボトルネックを解消するために、大幅に修正しました。

ほとんどのデータベースロジックを、C ライブラリ(libdqlite)と、LXD 用の SQL インターフェースを提供する Go パッケージ(go-dqlite)内で実行するようになりました。

ディスク上のフォーマットに変更はありませんので、この変更に対するアップグレード処理に危険はありません。しかし、パッケージを作成する場合には、新しいライブラリを忘れずに、LXD と一緒にパッケージングする必要があります。

ファイルケーパビリティのサポート

tarrsync を呼び出す場合はすべて、ファイルのケーパビリティを含む拡張属性を保存、復元するのに必要なオプションを与えるようになりました。

さらに、最近導入された非特権のファイルケーパビリティを使用して、ファイルのケーパビリティを含むファイルの ID のシフトやシフト解除(unshift)するためのロジックを idmap パッケージに実装しました。

適切なカーネル(upstream の 4.14 以上)では、LXD イメージは pingmtr のようなユーティリティに対してファイルケーパビリティを含めることができ、特権コンテナのユーザでも非特権コンテナのユーザでも同じように、これらのケーパビリティを設定して使うことができます。

lxc filelxc import の進捗表示

ファイルの転送や LXD へのバックアップのアップロードで、進捗表示が表示されるようになりました。 サイズがわかる場合は、転送された割合と現在のスピードが表示されます。サイズがわからない場合は、転送された量と転送スピードを表示します。

Bugfixes

  • container: containerCreateAsCopy() update pool
  • forkmount: ignore ENOENT and EINVAL on umount2()
  • nsexec: simplify attach_userns()
  • Fall back to alternate way of detecting minor version of Nvidia driver if needed
  • lxd/maas: Make error more readable
  • lxd-p2c: Send rsync output to stderr
  • lxd/migration: Don't pass -vP to a hidden rsync
  • lxc: Properly handle --target in copy and move
  • memory: fix format string
  • lxc/move: Support config and profile overrides
  • i18n: Update translation templates
  • exec: fix format string
  • images: fix format string
  • migrate: remove debug residuals
  • lvm: fix format string
  • db: fix format string
  • nsexec: prevent fd leak
  • Fix the storage_pool_id filter from the WHERE clause of StoragePoolsConfig
  • Fix lints
  • Extract cmdInit.ApplyConfig into a separete initApplyConfig function
  • Split initApplyConfig into initDataNodeApply and initDataClusterApply
  • Fix broken alternate TLS server cert in integration tests
  • lxd/containers: Don't update MAAS for snapshots
  • lxd/maas: Allow starting with MAAS offline
  • Enable tcp KeepAlive
  • lxd/cluster: Improve error on bad target
  • reader: Handle EINTR
  • allow uidmaps to be parsed from alternate roots
  • lxd/storage/zfs: Improve defaults
  • test: Fix static analysis
  • Allow identity mappings for unprivileged containers
  • container: adapt allowedUnprivilegedOnlyMap()
  • shared: Dereference directory symlinks
  • lxd,shared: Move parseNumberFromFile to shared
  • lxc/network: Add --format option to list
  • lxd/db: Don't hang after bad request
  • lxd/apparmor: Allow ro bind-mounts and remounts
  • idmap: support skipping directories
  • lxd: Properly set containerArgs in all cases
  • lxd/storage: Fix PATCH on storage pools
  • container: use lxcSetConfigItem() for lxc.log.file
  • lxc/cluster: Remove bad alias
  • lxd/storage: Fix volume creation API
  • tests: Add alternative TCP port finder
  • doc: Document hostname requirements
  • networks: Support stateful DHCPv6 with prefixes longer than /64
  • lxd/networks: Skip DHCP mangle if firewall off
  • network: do not print writer struct on error
  • lxd/patches: Force a one-time config re-gen
  • storage pools: move structs
  • storage volumes: move structs
  • images: move structs
  • client: Export OperationWait
  • lxd/cluster: Only restart local containers
  • images: consistenly name command structs
  • cluster: move structs
  • api 1.0: move struct
  • api internal: move structs
  • certificates: move structs
  • events: move structs
  • operations: move structs
  • profiles: move structs
  • resources: move structs
  • container logs: move structs
  • container post: move structs
  • lxd/storage/btrfs: Fix recursive snapshots
  • lxd/cluster: Fix attaching CEPH custom volumes
  • lxd/storage: Fix double quoting
  • Reduce the frequency of raft snapshots
  • lxd/storage/ceph: Don't keep snapshots mounted
  • util linux: add abstract unix socket helpers
  • proxy: Rework to match master
  • lxd: Cleanup logging
  • lxd: Improve error messages
  • proxy: Properly handle relay errors
  • lxd/certificates: Log password failures
  • proxy: handle full socket buffer
  • gpu: special case passing all GPUs
  • gpu: don't fail during parse
  • gpu: handle cards among Nvidia devices
  • gpu: fix Nvidia minor index parsing
  • lxd/containers: Fix removing NVIDIA containers
  • doc: Add links to REST API
  • doc: Fix storage volume examples
  • lxd/operations: Forward to right cluster node
  • lxc/{copy,move}: Allow overriding device config
  • i18n: Update translations
  • tests: Perform a lazy umount in case of errors
  • lxd/networks: Improve dnsmasq leases cleanup
  • migration: fix cross version migrations
  • doc: Note that default profile cannot be deleted/renamed
  • lxc/profile: Fix "get" command
  • lxd: Prevent renaming/deletion of the default profile
  • test: Test default profile renaming/deletion
  • Fix "neighbour: ndisc_cache: neighbor table overflow"
  • lxd: Fix StoragePoolVolumesGetNames
  • lxd/apparmor: Fix typo in nesting profile
  • lxd/patches: Make config re-gen fault tollerant
  • fix links in api-extension
  • lxd/db: Fix handling of NetworkConfigClear
  • lxd/networks: Fix PATCH operations
  • lxd/networks: Improve error on missing openvswitch
  • tests: Add test for network put/patch
  • lxd/networks: Fix revert on update failure
  • Allow deleting storage pools that only contain image volumes
  • lxd/storage: Remove image on pool deletion
  • lxd/storage: Keep images when deleting pool
  • lxd/init: Allow selecting custom Fan underlay
  • lxd/init: Fix typo in Fan question
  • lxd/networks: Calculate Fan MTU based on parent
  • shared/util: Fix unit parsing (metric vs iec)
  • lxd/storage/lvm: Round size to closest 512 bytes
  • lxd/storage: Drop late size check
  • lxd/storage/lvm: Fix umount logic during btrfs copy
  • lxd/storage/ceph: Mount the fs after growing the block
  • tests: Switch to MiB for btrfs resize
  • tests: Fix race in network test
  • lxc: Switch to Ubuntu 18.04 as initial container
  • lxc: Be clever about when showing "lxd init"
  • client: Split LXD download code into own function
  • client: Attempt to fetch through devlxd
  • Make lvm.thinpool_name and lvm.vg_name node-specific
  • This should have been a patch, for easier backporting
  • i18n: Update translation templates
  • zfs: Support querying version through modinfo
  • lxd/networks: Fix port number for DHCPv6
  • Don't include container name in backups/snapshots
  • client: Fix CopyContainerSnapshot API
  • lxc/copy: Update to fixed CopyContainerSnapshot
  • lxd/import: Fix support for snapshots without container name
  • doc: Fix API output for snapshots
  • lxc: Make answer to remote add translatable
  • doc: Fix typo
  • lxc/storage: Fix bad argument parsing
  • tests: Fix new storage get/set test
  • *: Unify error messages
  • i18n: Update translation templates
  • Use mattn's sqlite3 bindings in the lxd/db sub package
  • Drop go-1.6 code
  • Replace grpc-sql with dqlite custom protocol
  • Wire dqlite server
  • Adapt main package to new cluster sub-package API
  • Drop raft snapshot workaround
  • Fetch containers info in parallel
  • Fix some missing error checks
  • Add support for "lxd sql global .sync", to sync the cluster db to disk
  • Capitalize error messages
  • Enforce the limit of open connections to local db after initialization is over
  • Re-enable empty table checks
  • Fix lints
  • lxd/cluster/gateway: Tweak errors
  • lxd/cluster/gateway: Log proxy errors
  • lxd: Improve shutdown logic for cluster nodes
  • Redirect dqlite logging to lxd logging
  • Fix unit test regression
  • Makefile: Respect CGO_CFLAGS
  • Makefile: Fix typo in .PHONY
  • Makefile: Rename protobuf to update-protobuf
  • Makefile: Drop gccgo
  • Makefile: Drop outdated comment
  • Makefile: Fix tags handling
  • Makefile: Require libsqlite3
  • Makefile: Include dqlite in dist tarball
  • Makefile: Add deps target
  • lxd: Fix --syslog flag
  • lxd/containers: Don't flush leases for snapshots
  • shared/idmap: Shift fscaps
  • lxd/cluster: Fix typo in errors
  • tar: Support xattrs
  • rsync: Support xattrs
  • test: Add test for cluster shutdown logic
  • tar: Use --xattrs-include=* during extract
  • idmap: C coding style fixups
  • idmap: s/set_caps/set_vfs_ns_caps/g
  • idmap: convert uid from big to little endian
  • client: Centrally handle targeting
  • shared/idmap: Fix xattr.h import
  • lxc/utils: Handle empty progress
  • lxc/file: Show progress
  • lxd/containers: Use internal struct values
  • networks: Ignore veth devices
  • networks: Don't try listing containers for lo
  • lxd/cluster: Only query the containers we need
  • Add ContainerArgsList and ContainerArgsNodeList
  • lxd/db: Fix snapshot filtering
  • lxd/containers: Add helpers for retrieving containers
  • lxd: Port over to new containerLoadNodeAll function
  • lxd: Port over to new containerLoadAll function
  • lxd: Only get the profiles once
  • lxd/containers: Speed up recursive list
  • shared/api: Define ContainerFull
  • lxd/storage: Don't log every storage init
  • lxc/list: Port to ContainerFull
  • lxd/storage: Cache storage version
  • Fix "no transaction is active" error during database updates
  • lxc/remote: Fix crash on bad remote name
  • lxd/storage/zfs: Optimize getting disk usage
  • lxd/networks: Drop unused db property
  • lxd: Add endpoints to state struct
  • lxc/container: CEPH also needs offline quotas
  • lxd/storage/ceph: Fix default container quotas
  • Makefile: Set PKG_CONFIG_PATH
  • i18n: Update translation templates
  • client: Implement support for recursion=2
  • doc: Update requirements
  • lxd/images: Cleanup any leftovers on startup
  • Send a notification to other nodes when an image is removed
  • Silence shellcheck
  • doc: Update README a bit
  • doc: Add some more packages to README
  • doc: Add tcl to README
  • Makefile: Tweak sqlite build flags
  • doc: Pass LD_LIBRARY_PATH through sudo
  • Support moving a container within a cluster, keeping the same name
  • lxc/image: Fix URL-based imports
  • Update rest-api.md
  • shallow clone for deps
  • Shallow clone for dist
  • *: Rename macaroon(s) -> candid
  • lxd/patches: Add patch for macaroon/candid config
  • auth: Support URL based auth
  • Update i18n
  • doc: Add example of exec with record-output
  • lxd/devices: Iterate /sys/class/drm for GPUs
  • lxd/api: Sort list of endpoints

サポートとアップグレード

LXD 3.0.2 は 2023 年 6 月までサポートされる最新の LTS リリースです。利用可能になった最新のバグ修正リリースに更新することをお勧めします。

ダウンロード

LXD 3.4 リリースのお知らせ

14th of August 2018

はじめに

LXD チームは LXD 3.4 のリリースを発表することにとてもワクワクしています!

このリリースの主なハイライトは、パフォーマンスの大幅な向上です。 データベースバックエンドを新しいバージョンにアップグレードし、バッチクエリ用の新しい内部 API を導入し、1 回の API コールで全コンテナの状態が問い合わせできるようになり、クラスタパフォーマンスにかなりの悪影響を及ぼした多数のボトルネックを修正しました。

最初のテストで、数千のコンテナが稼働しているクラスタで、コンテナの基本的な状態を通常は数秒で返すようになりました(lxc list --fast)。その他の操作も以前に比べて大幅に高速化しています。特に数百〜数千のコンテナのすべての状態を問い合わせるような場合などは、まだ完全に想定の速度には到達していません(lxc list)。しかし、それを改善するためのオプションもいくつかあります。

新機能は、いくつかのコマンドラインクライアントに欠けていた進捗表示を追加し、外部コマンドにエイリアスを設定する機能を追加しました。そして、クラスタ上の Fan ブリッジを使っている場合のホストをまたいで DNS が使えるようになりました。

Enjoy!

重要なお知らせ

コンテナのスナップショットとバックアップのネーミングの修正

従来は、すべてのスナップショットとバックアップの name プロパティは、コンテナ名に続いてスラッシュが続き、その後にスナップショットもしくはバックアップ名が続いていました。

これは、特定のコンテナを検索することでしかこの情報を得ることができなかったため、冗長でした。

API はスナップショットもしくはバックアップ名のみ返すようになりました。しかし LXD は、既存のバックアップのマイグレーションやリストアもできるように、依然として古い形式も認識します。

新しい dqlite の実装に切り替わりました

LXD 3.0 で使い始めた分散 sqlite3 実装である dqlite を、多数のパフォーマンス上のボトルネックを解消するために、大幅に修正しました。

ほとんどのデータベースロジックを、C ライブラリ(libdqlite)と、LXD 用の SQL インターフェースを提供する Go パッケージ(go-dqlite)内で実行するようになりました。

ディスク上のフォーマットに変更はありませんので、この変更に対するアップグレード処理に危険はありません。しかし、パッケージを作成する場合には、新しいライブラリを忘れずに、LXD と一緒にパッケージングする必要があります。

lxc remote set-defaultlxc remote switch に変更されました

lxc remote set-default をより親しみやすく、短い lxc remote switch に変更しました。この変更は、LXD プロジェクトで今後予定されている、同様の switch サブコマンドの追加に対する準備としてなされました。

lxc remote set-defaultlxc remote switch のエイリアスとして、今後も有効なままです。

macaroon 認証オプションを candid に変更しました

Candid project で、macaroon ベースの認証の標準的な実装が公開されたので、これをサポートするように LXD を更新しました。そして設定オプションをこれに合うように変更しました。

これは主に、現在は candid.api.url に変更された、以前の core.macaroon.endpoint に影響します。LXD 3.4 にアップグレードすると、自動的にこの名前を変換します。

新機能

クラスタ向けの Fan を使った DNS 名前解決

オーバーレイ・ネットワークとして、Ubuntu の Fan を使っている LXD クラスターを実行しているユーザの問題のひとつに、様々なノード間ですべてのトラフィックが適切にルーティングされていても、同じクラスタノード上で実行中の場合のみ、コンテナの名前解決が働くというものがありました。

LXD 3.4 では、すべてのノードに対してネットワークの定義されたドメイン(デフォルトで lxd)に対する DNS クエリの解決にひとつの値を返すので、単一の統合 DNS サーバにが処理しているように感じます。

コンテナの状態向けのより速い API

新しい /1.0/containers?recursion=2 API が追加されました。これにより、すべてのコンテナの設定、状態、スナップショットやバックアップのリストを単一の呼び出しで取得できます。

これにより、コンテナごとに行っていた、ひとつのメインの API 呼び出しと、それに続く 3 つの追加呼び出しを、効率的にひとつの呼び出しで行えるようになりました。

lxc filelxc import の進捗表示

ファイルの転送や LXD へのバックアップのアップロードで、進捗表示が表示されるようになりました。 サイズがわかる場合は、転送された割合と現在のスピードが表示されます。サイズがわからない場合は、転送された量と転送スピードを表示します。

外部コマンドに対するエイリアス

コマンドラインクライアントに対して、外部コマンドを指すエイリアスが設定できるようになりました。 エイリアスの定義を、実行したいコマンドの絶対パスから開始するだけで済みます。

lxc alias add my-script "/usr/local/bin/myscript @ARGS@ --extra-args"

ファイルケーパビリティのサポート

tarrsync を呼び出す場合はすべて、ファイルのケーパビリティを含む拡張属性を保存、復元するのに必要なオプションを与えるようになりました。

さらに、最近導入された非特権のファイルケーパビリティを使用して、ファイルのケーパビリティを含むファイルの ID のシフトやシフト解除(unshift)するためのロジックを idmap パッケージに実装しました。

適切なカーネル(upstream の 4.14 以上)では、LXD イメージは pingmtr のようなユーティリティに対してファイルケーパビリティを含めることができ、特権コンテナのユーザでも非特権コンテナのユーザでも同じように、これらのケーパビリティを設定して使うことができます。

バグ修正

  • client: クラスタのターゲット取得処理を1ヶ所で扱うようにしました
  • client: CopyContainerSnapshot API を修正しました
  • doc: スナップショットの API 出力を修正しました
  • doc: ストレージのドキュメント内の typo を修正しました
  • doc: README に make deps について記載し、動作環境の情報を更新しました
  • global: rsync 呼び出しで xattrs をサポートしました
  • global: tar 呼び出しで xattrs をサポートしました
  • global: エラーメッセージを統一しました
  • i18n: weblate から翻訳を更新しました
  • i18n: 翻訳テンプレートを更新しました
  • lxc: 外部コマンドに対してエイリアスを設定できるようになりました
  • lxc: remote add の際の回答を翻訳可能にしました
  • lxc/container: Ceph の場合でもオフラインクォータを設定するようにしました
  • lxc/copy: 修正した CopyContainerSnapshot に更新しました
  • lxc/file: 進捗表示を行うようになりました
  • lxc/image: URL ベースのインポートの問題を修正しました
  • lxc/import: 進捗表示を行うようになりました
  • lxc/list: ContainerFull を使うようにしました
  • lxc/list: recursion=2 のサポートを追加しました
  • lxc/remote: 不適切なリモート名を指定した場合のクラッシュを修正しました
  • lxc/remote: set-defaultswitch にリネームしました
  • lxc/storage: 不適切な引数のパースを修正しました
  • lxc/utils: 進捗表示するものがない場合の扱いを追加しました
  • lxc-to-lxd: lxc.rootfs のパースの問題を修正しました
  • lxc-to-lxd: rootfs のテストを修正しました
  • lxd: dns フォワーダーを追加しました
  • lxd: バックアップ・スナップショットにコンテナ名を含めないようにしました
  • lxd: --syslog オプションの問題を修正しました
  • lxd: 新しい containerLoadAll 関数を使うようにしました
  • lxd: 新しい containerLoadNodeAll 関数を使うようにしました
  • lxd/backups: インターフェースである必要がない部分を修正しました
  • lxd/cluster: 新しい join API で空の MemberConfig も許可されるようにしました
  • lxd/cluster: エラーメッセージの typo を修正しました
  • lxd/cluster: ユニットテストのリグレッションを修正しました
  • lxd/cluster: 必要なときのみコンテナの問い合わせを行うようにしました
  • lxd/cluster: ペンディング状態のネットワーク/プールを適切にスキップするようにしました
  • lxd/cluster/gateway: プロキシのエラーをログ出力するようにしました
  • lxd/cluster/gateway: エラーメッセージを少し変更しました
  • lxd/containers: コンテナを取得するヘルパを追加しました
  • lxd/containers: スナップショットのリースをフラッシュしないようにしました
  • lxd/containers: 並列でコンテナを取得するようにしました
  • lxd/containers: recursion=2 のサポートを実装しました
  • lxd/containers: クラスタノードのシャットダウンロジックを改良しました
  • lxd/containers: プロファイルを一度だけ取得するようにしました
  • lxd/containers: リカーシブなリスト取得をスピードアップしました
  • lxd/containers: 内部的な構造体の値を使うようにしました
  • lxd/db: メインパッケージを新しいクラスタサブパッケージ API に合わせました
  • lxd/db: ContainerArgsList 関数と ContainerArgsNodeList 関数を追加しました
  • lxd/db: lxd sql global .sync コマンドを追加しました
  • lxd/db: エラーメッセージを大文字で始めるようにしました
  • lxd/db: go-1.6 に対する後方互換性用のコードを削除しました
  • lxd/db: raft のスナップショットのための回避コードを削除しました
  • lxd/db: lint のエラーを修正しました
  • lxd/db: スナップショットのフィルタリングの問題を修正しました
  • lxd/db: 欠けていたエラーチェックをいくつか修正しました
  • lxd/db: ローカル DB を初期化した後のオープンしているコネクション数を制限しました
  • lxd/db: dqlite のロギングを lxd のロギングにリダイレクトするようにしました
  • lxd/db: 空のテーブルチェックを復活させました
  • lxd/db: grpc-sql を dqlite のカスタムプロトコルに置き換えました
  • lxd/db: 自身(カノニカル)の fork の代わりに mattn の sqlite3 バインディングを使うようにしました
  • lxd/db: dqlite サーバを使うようにしました
  • lxd/forkproxy: {g,u}id に正しい型を使うようにしました
  • lxd/images: スタートアップ時に残ったイメージをクリーンアップするようにしました
  • lxd/images: イメージを削除した際に他のノードに通知を送るようにしました
  • lxd/import: コンテナ名なしのスナップショットサポートの問題を修正しました
  • lxd/init: 新しいクラスタに参加する API を使うようにしました
  • lxd/networks: FAN のクラスター化された DNS が使えるようになりました
  • lxd/networks: lo に対してコンテナをリストしないようにしました
  • lxd/networks: 使われていない DB プロパティを削除しました
  • lxd/networks: コンテナのパケット統計の問題を修正しました
  • lxd/networks: veth デバイスを無視するようにしました
  • lxd/networks/state: 存在しないインターフェースをスキップするようにしました
  • lxd/patches: データベース更新中の「アクティブなトランザクションはありません」というエラーを修正しました
  • lxd/state: state 構造体に endpoints を追加しました
  • lxd/storage: ストレージのバージョンをキャッシュするようにしました
  • lxd/storage: ストレージの初期化ごとにログを記録しないようにしました
  • lxd/storage/ceph: デフォルトのコンテナクォータを修正しました
  • lxd/storage/zfs: ディスク使用量の取得を最適化しました
  • Makefile: deps ターゲットを追加しました
  • Makefile: gccgo のサポートを削除しました
  • Makefile: 古くなったコメントを削除しました
  • Makefile: タグの扱いを修正しました
  • Makefile: .PHONY の typo を修正しました
  • Makefile: dist tarball に dqlite を含めました
  • Makefile: protobuf を update-protobuf にリネームしました
  • Makefile: libsqlite3 に依存するようになりました
  • Makefile: CGO_CFLAGS を参照するようになりました
  • Makefile: PKG_CONFIG_PATH を設定するようにしました
  • Makefile: sqlite のビルドフラグを調整しました
  • Makefile: dist の clone で最新版のみ取得するようにしました
  • Makefile: deps の clone で最新版のみ取得するようにしました
  • shared/api: ContainerFull を定義しました
  • shared/idmap: C コーディングスタイルを修正しました
  • shared/idmap: uid をビッグからリトルエンディアンに変換するようにしました
  • shared/idmap: xattr.h のインポートを修正しました
  • shared/idmap: fscaps をシフトするようにしました
  • shared/idmap: s/set_caps/set_vfs_ns_caps/g
  • tests: クラスターのシャットダウンロジックのテストを追加しました
  • tests: lxc-to-lxd のユニットテストを修正しました
  • tests: 新しいストレージの get/set テストを修正しました

試用環境

この新しい LXD リリースは私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 3.3 リリースのお知らせ

27th of July 2018

はじめに

LXD チームは LXD 3.3 のリリースを発表することにとてもワクワクしています!

このリリースはどちらかというと機能を詰め込んだリリースです。この機能には、proxy デバイスの重要な改良、lxc-to-lxd の完全な書き換え、コンテナの削除からの保護、デバッグ・プロファイリング能力の改良、ネットワーク管理のいくつかの改良、たくさんの新しい CLI オプションを含みます。

通常のリリースと同様にバグフィックスも含みます。

新機能

lxc-to-lxd の書き換えと改良

LXC から LXD へのマイグレーションツールを、我々のコードの他の部分と同じように Go で書き直しました。 このツールは LXD のマイグレーション API を使い、(lxd-p2c と同様に)コンテナを転送します。そして、LXC 2.x と 3.x の両方をサポートします。

ネットワークステート API

/1.0/networks/<NAME>/state という新しい API を追加しました。この API は既存のネットワークに関する情報を返します。例えば次のような出力が得られます:

{
    "addresses": [
        {
            "address": "10.166.11.1",
            "family": "inet",
            "netmask": "24",
            "scope": "global"
        },
        {
            "address": "2001:470:b368:4242::1",
            "family": "inet6",
            "netmask": "64",
            "scope": "global"
        },
        {
            "address": "fe80::4865:17ff:fed5:e347",
            "family": "inet6",
            "netmask": "64",
            "scope": "link"
        }
    ],
    "counters": {
        "bytes_received": 45866443,
        "bytes_sent": 3087152218,
        "packets_received": 600757,
        "packets_sent": 772253
    },
    "hwaddr": "fe:65:0e:c3:df:3d",
    "mtu": 1500,
    "state": "up",
    "type": "broadcast"
}

コマンドラインクライアントには次のような問い合わせを行うサブコマンドが追加されました:

stgraber@castiana:~$ lxc network info lxdbr0
Name: lxdbr0
MAC address: fe:65:0e:c3:df:3d
MTU: 1500
State: up

Ips:
  inet  10.166.11.1
  inet6 2001:470:b368:4242::1
  inet6 fe80::4865:17ff:fed5:e347

Network usage:
  Bytes received: 45.87MB
  Bytes sent: 3.09GB
  Packets received: 600756
  Packets sent: 772248

コンテナ削除に対する保護

新しい設定項目 security.protection.delete を、コンテナに対して true に設定できるようになりました。これにより、予想外の削除からコンテナを保護できます。

この機能は次のように使えます:

stgraber@castiana:~$ lxc config set c1 security.protection.delete true
stgraber@castiana:~$ lxc delete c1
Error: Container is protected
stgraber@castiana:~$ lxc config unset c1 security.protection.delete
stgraber@castiana:~$ lxc delete c1

proxy デバイスタイプに対する新しい設定オプション

このリリースでは、proxy デバイスに重要な改良をいくつか追加しました。

次のような新しいプロパティで、リスン用の UNIX ソケットの所有権とパーミッションをコントロールできます:

  • uid
  • gid
  • mode

同様に proxy プロセス自身の特権削除のコントロールには次のプロパティを使います:

  • security.uid
  • security.gid

proxy は、proxy_protocoltrue に設定することで TCP 接続に対して、HAProxy 互換の PROXY ヘッダ(V1)も設定できます。

そして最後に、nat プロパティを true に設定することで、proxy プロセスを完全にスキップして、代わりに NAT を使えます。これが動作するには、接続の両端が UDP か TCP 接続でなければならず、静的な IP アドレスを ipv4.address もしくは ipv6.address プロパティを使って、nic デバイスに設定しなければいけません。

ホスト経由のイメージダウンロード

LXD 3.2 で新しい devlxd API を導入しました。これは、security.devlxd が有効で(デフォルト値です)、security.devlxd.imagestrue に設定されている場合は、コンテナ内の LXD デーモンから、公開もしくはキャッシュされたイメージをダウンロードできるという機能でした。

LXD 3.3 では、自身がその新しい API を使うことをサポートし、ネットワークを使う前にホストからイメージを取得しようとします。これにより、ネストした LXD のユーザが帯域を大幅に節約できます。

ビルトインのデバッグとプロファイリングサーバ

LXD は pprof サーバをビルトインするようになりました。core.https_address と同様の文法で core.debug_address プロパティを設定することで、この機能を有効にできます。

そして http://<address>/debug/pprof にアクセスし、LXD デーモンの基本的な情報をいくつか取得できます。より詳細な情報を取り出すために、pprof ツールから同じ URL を使えます。

lxc network list--format オプション

この新しいオプションは、他の色々なサブコマンドと同様に使えます。そして、出力として tablecsvjsonyaml で出力を取得できます。

コピー、移動中のデバイス設定の上書き

-d <device>,<key>=<value>lxc copylxc move に指定することで、リモートコピー、移動操作中に、指定したデバイスの設定を上書きできます。

lxd init コマンドの --dump オプション

LXD には lxd init --preseed を使って、あらかじめ準備した設定を流し込む機能があります。これまでは、このあらかじめ準備する設定の定義は、手書きで書くか、lxd init をインタラクティブに実行した最後に取得するしかありませんでした。

新たに lxd init --dump コマンドで、実行中の LXD の設定から設定ファイルを生成できるようになりました。これで、ほぼ同一の設定の新しい LXD サーバをより簡単に設定できます。

LXD のネットワークの bridge.hwaddr プロパティ

ネットワークに新たに追加された bridge.hwaddr プロパティを設定し、LXD ブリッジの MAC アドレスを制御できます。この機能は、モニタリング・グラフ化しているシステムや、常に変化する MAC アドレスが問題を引き起こしていたようなシステムに対して有効です。

LXD ネットワークの ipv4.nat.orderipv6.nat.order プロパティ

このふたつのオプションは、ファイアウォールに NAT ルールを追加する際の順番を制御します。 デフォルトでは before が設定されます。これは生成したルールが既存のユーザルールの前に追加されることを意味します。代わりに after を設定すると、マニュアルで追加するファイアウォールルールを LXD 自身のルールの直前に実行する必要がある場合に便利です。

Bugs fixed

  • client: Export OperationWait
  • client: Split LXD download code into own function
  • doc: Document hostname requirements
  • doc: Fix links in api-extension
  • doc: Fix missing escaping in api-extensions
  • doc: Fix "neighbour: ndisc_cache: neighbor table overflow"
  • doc: Fix storage volume examples
  • doc: Note that default profile cannot be deleted/renamed
  • i18n: Update translations from weblate
  • i18n: Update translation templates
  • lxc: Be clever about when to show "lxd init"
  • lxc: Switch to Ubuntu 18.04 as initial container
  • lxc/cluster: Remove bad alias
  • lxc/profile: Fix "get" command
  • lxd: Fix StoragePoolVolumesGetNames
  • lxd: Make iptables logic usable for containers
  • lxd: Move command structs around
  • lxd: Prevent renaming/deletion of the default profile
  • lxd: Properly set containerArgs in all cases
  • lxd/apparmor: Allow ro bind-mounts and remounts
  • lxd/apparmor: Fix typo in nesting profile
  • lxd/certificates: Log password failures
  • lxd/cluster: Fix attaching CEPH custom volumes
  • lxd/cluster: Only restart local containers
  • lxd/cluster: Reduce the frequency of raft snapshots
  • lxd/containers: adapt allowedUnprivilegedOnlyMap()
  • lxd/containers: Allow identity mappings for unprivileged containers
  • lxd/containers: Don't fail while parsing NVIDIA GPU list
  • lxd/containers: Fix Nvidia minor index parsing
  • lxd/containers: Fix removing NVIDIA containers
  • lxd/containers: Handle cards among Nvidia devices
  • lxd/containers: Special case passing all GPUs
  • lxd/containers: use lxcSetConfigItem() for lxc.log.file
  • lxd/containers: Validate proxy config early
  • lxd/db: Don't hang after bad request
  • lxd/db: Fix handling of NetworkConfigClear
  • lxd/init: Allow selecting custom Fan underlay
  • lxd/init: Fix typo in Fan question
  • lxd/migration: Fix cross version migrations
  • lxd/networks: Calculate Fan MTU based on parent
  • lxd/networks: Fix PATCH operations
  • lxd/networks: Fix port number for DHCPv6
  • lxd/networks: Fix revert on update failure
  • lxd/networks: Improve dnsmasq leases cleanup
  • lxd/networks: Improve error on missing openvswitch
  • lxd/networks: Skip DHCP mangle if firewall off
  • lxd/networks: Support stateful DHCPv6 with prefixes longer than /64
  • lxd/operations: Forward to right cluster node
  • lxd/patches: Force a one-time config re-gen
  • lxd/patches: Make config re-gen fault tollerant
  • lxd/patches: Make lvm.thinpool_name and lvm.vg_name node-specific
  • lxd/proxy: Convert mode from string to octal
  • lxd/proxy: Handle full socket buffer
  • lxd/storage: Allow deleting storage pools that only contain image volumes
  • lxd/storage/btrfs: Fix recursive snapshots
  • lxd/storage/ceph: Don't keep snapshots mounted
  • lxd/storage/ceph: Mount the fs after growing the block
  • lxd/storage: Drop late size check
  • lxd/storage: Fix double quoting
  • lxd/storage: Fix PATCH on storage pools
  • lxd/storage: Fix volume creation API
  • lxd/storage: Keep images when deleting pool
  • lxd/storage/lvm: Fix umount logic during btrfs copy
  • lxd/storage/lvm: Round size to closest 512 bytes
  • lxd/storage: Remove image on pool deletion
  • lxd/storage/zfs: Support querying version through modinfo
  • shared: Dereference directory symlinks
  • shared: Do not print writer struct on network error
  • shared: Move parseNumberFromFile to shared
  • shared/idmap: support skipping directories
  • shared/util: Fix unit parsing (metric vs iec)
  • tests: Add alternative TCP port finder
  • tests: Add test for network put/patch
  • tests: Fix race in network test
  • tests: Fix static analysis
  • tests: Perform a lazy umount in case of errors
  • tests: Switch to MiB for btrfs resize
  • tests: Test default profile renaming/deletion

Try it for yourself

This new LXD release is already available for you to try on our demo service.

Downloads

The release tarballs can be found on our download page.

LXD 3.2 リリースのお知らせ

22nd of June 2018

はじめに

今月の LXD のリリースは、特に LXD をクラスタリングで使う場合の、多数のバグフィックスやパフォーマンスの改良を行いました。

機能面では、このリリースは多数の改良点があります。この改良点には、LXD 3.0 で導入された proxy デバイスタイプを使う際の改良、ネスト環境でのイメージダウンロードの基礎的な作業となる改良、プール間でコンテナをコピーや移動できるようにするためのストレージについて我々が考えた道筋との間の大きな乖離をなくすための改良ががあります。

このリリースに含まれる変更点

新機能 :

  • /dev/lxd に新しい API を追加しました。これにより、ホストから、パブリックとキャッシュされたイメージの直接ダウンロードができるようになります(security.devlxd.imagesの設定が必要です)
  • ストレージプール間のコンテナのコピーと移動ができるようになりました
  • proxy device の大きな改良 :
    • Unix ソケットのサポート(OOB パケットを含みます)
    • UDP のサポート
    • UDP と TCP のポートの範囲
  • シンプルになった新しいクラスタへ参加するための API

バグ修正 :

  • client: TCP KeepAlive を有効化しました
  • doc: REST API へのリンクを追加しました
  • doc: api-extensions.md 内の Typo を修正しました
  • i18n: weblate から翻訳の更新を行いました
  • i18n: 翻訳のテンプレートを更新しました
  • lxc: コピーと移動の際の --target を正しく扱うようにしました
  • lxc/{import,export}: snap のパスの問題を解決しました
  • lxc/move: 設定(config)とプロファイルの上書きができるようになりました
  • lxd: ロギングをクリーンアップしました
  • lxd: マニュアルでの GC 呼び出しを削除しました
  • lxd: フォーマット文字列をいくつか修正しました
  • lxd: エラーメッセージを改良しました
  • lxd/cluster: 他のクラスタノードにプロファイルの変更をブロードキャストするようにしました
  • lxd/cluster: ストレージプールを更新する際の不適切なデータベースクエリを修正しました
  • lxd/cluster: 不適切なターゲットを指定した場合のエラーを改良しました
  • lxd/cluster: メンバー固有の設定としては使えない設定項目を指定した場合のエラーと文書を改良しました
  • lxd/cluster: コンテナ・スナップショットの publish を関係のあるメンバーにリダイレクトするようになりました
  • lxd/cluster: クラスタデータベースに対する読み込みをシリアライズ化しました
  • lxd/containers: 古い NVIDIA GPU のデバイスノードを推測するようになりました
  • lxd/containers: スナップショットに対する MAAS の更新を行わないようにしました
  • lxd/containers: メタデータ中の fd のリークを修正しました
  • lxd/containers: マニュアルで liblxc 構造体を解放するようにしました
  • lxd/forkmount: umount2()ENOENTEINVAL を無視するようにしました
  • lxd/maas: MAAS がオフライン状態でも(訳注: デーモンが)開始ができるようになりました
  • lxd/maas: エラーをより見やすくしました
  • lxd/migrate: 残ったデバッグメッセージを削除しました
  • lxd/migration: バックグラウンドで実行する rsync では -vp を指定しないようにしました
  • lxd/nsexec: fd がリークしないようにしました
  • lxd/nsexec: attach_userns() を簡素化しました
  • lxd/storage/lvm: プール名と VG 名の混同を修正しました
  • lxd/storage/lvm: デフォルトの thinpool 名を LXDThinPool に変更しました
  • lxd/storage/zfs: デフォルトを改良しました
  • lxc-to-lxd: LXD_SOCKET 環境変数を参照するようにしました
  • lxd-p2c: rsync のバージョンチェックを追加しました
  • lxd-p2c: rsync 引数の上書きができるようになりました
  • lxd-p2c: rsync のエラーレポートを改良しました
  • lxd-p2c: 失敗時にはコンテナを削除するようにしました
  • lxd-p2c: ターゲットの URL をより賢く扱うようになりました
  • lxd-p2c: 引数が足りないエラーを無視するようにしました
  • lxd-p2c: rsync の出力を stderr に出力するようにしました
  • shared: abstract Unix ソケットのヘルパを追加しました
  • shared/eagain: EINTR を扱うようにしました
  • shared/idmap: root ファイルシステム以外の uidmap もパースできるようにしました
  • tests: 総合テストでの壊れた代替 TLS サーバ証明書の問題を修正しました
  • tests: Ceph の pg_num を 1 に減らしました

試用環境

この新しい LXD のリリースが私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 3.0.1 リリースのお知らせ

5th of June 2018

はじめに

LXD チームは LXD 3.0.1 のリリースをお知らせできることをうれしく思います!

Stable に対するバグフィックスのためのリリースですので、大きな変更はありません。バグフィックスと細かな使い勝手の改良にフォーカスしています。

改良点

  • lxclxdversion サブコマンドが追加されました
  • クラスタリングを構築する際に、ネットワークのオプションを設定しやすくなるように、lxd init を作り直しました
  • 新たに lxc cluster enable コマンドを追加しました
  • ローカルとグローバル両方のデータベースを扱えるよう lxd sql コマンドを作り直しました
  • lxd init --auto コマンドが、デフォルトのブリッジも設定するようになりました

バグ修正

  • lxc: コマンドに対する間違った Hidden 指定を修正しました
  • i18n: 翻訳テンプレートを更新しました
  • lxd/migration: 前もってプロファイルの確認を行うようにしました
  • client: リモートに対する操作のエラー表示を改良しました
  • Typo と単語の修正を行いました
  • lxc/image: 引数のパースが原因でクラッシュする問題を修正しました
  • lxd: 足りなかった limits.h の include を追加しました
  • lxd/init: --auto でのネットワークの設定の問題を修正しました
  • lxc: クラスタリングの用語を統一しました
  • lxc/file: リモートへのファイルの push 時の問題を修正しました
  • lxd/init: デフォルトではリモートのストレージプールをセットアップしなくなりました
  • 既存の ZFS が存在する場合、インタラクティブモードでのクラスタへの追加が失敗する lxd init の問題を修正しました
  • lxc/query: -d と -X の問題を修正しました
  • lxc/help: help コマンドで --all が使えない問題を修正しました
  • lxc network のヘルプにあった Typo を修正しました
  • プール ID によるノードレベルのストレージ設定を適切にフィルタするようにしました
  • lxd/init: コマンドの出力に一貫性を持たせました
  • 最新の gofmt に対応しました
  • lxc/file: シンボリックリンク先の実体を扱えるように -r オプションを追加しました
  • juju/idmclientCanonicalLtd/candidclient に置き換えました
  • lxc/config: snap で信頼する証明書を追加する際の問題を修正しました
  • lxc/alias: ヘルプ表示の例を修正しました
  • client: LXD_SOCKET を使って LXD のソケットパスを指定できるようになりました
  • Makefile: manifest を追加しました
  • containers: スナップショットの消去の問題を修正しました
  • lxc/init: 足りなかった --no-profiles オプションを追加しました
  • i18n: 翻訳を更新しました
  • lxc/file: pull のターゲット処理部分のロジックを修正しました
  • doc: userns-idmap 内の例を修正しました
  • devices: Nvidia デバイスの情報に Device Minor がない場合の問題を修正しました
  • db.ContainersNodeList を追加しました
  • storage: createContainerMountpoint() 関数内で設定しているパーミッションを修正しました
  • ceph, lvm, storage utils, zfs, btrfs: パーミッションの問題を修正しました
  • patches: "storage_api_path_permissions" を追加しました
  • sys/fs: s/MkdirAll/Mkdir/g
  • logger を raft-http に渡すようにしました
  • データベースノードでないノードをデータベースノードに転換させるための関数 cluster.Promote を新たに追加しました
  • データベースノードへの追加が必要かどうかをチェックする cluster.Rebalance 関数を新たに追加しました
  • ノードを削除したあとリーダーに通知するようにしましたので、リバランスされます
  • (訳注: マイグレーションに関する) 総合テストを追加しました
  • doc: backup.md を調整しました
  • lxd/init: 既存のクラスタへの参加には root 権限が必要なのでチェックを行うようにしました
  • "flaky" なテストをとりあえず無効化しました (訳注: "flaky" test = 同じコードでpass/failどちらの結果にもなってしまうようなテストのこと)
  • Daemon.Init() でのエラー時にログを出力するようにしました (訳注: 実際はInitだけでなくStopのときも)
  • client: ConnectionInfo に http の URL を追加しました
  • lxc/query: 非 JSON エンドポイントのサポートを追加しました
  • 空のクエリ文字列を扱えるようにしました
  • 標準入力からクエリを読み込めるようになりました
  • 複数のクエリを与えることができるようになりました
  • データベースファイルをリネームしました
  • ローカルとグローバルのデータベース両方にクエリを投げられるようになりました
  • 総合テストを更新しました
  • images_alias テーブル作成時に付いていたダブルクオートを削除しました
  • スキーマとデータをダンプするための query.Dump を追加しました
  • lxd sql で dump コマンドが使えるようになりました
  • lxd/containers: lxc.net のチェックの問題を修正しました
  • doc/backup.md: snap のパスを更新しました
  • lxc cluster enable コマンドを追加しました
  • コマンドの説明のフォーマットを修正しました
  • .pot ファイルを更新しました
  • 総合テストでは隔離された LXD インスタンスを使うようにしました
  • 総合テストでコンテナを起動させるようにしました
  • Printf を Println にしました
  • LXD_UNPRIVILEGED_ONLY 環境変数を使って、特権コンテナの使用を無効化できるようになりました
  • lxd: LXD_UNPRIVILEGED_ONLY を調整しました
  • doc: LXD_UNPRIVILEGED_ONLY の説明を追加しました
  • tests: LXD_UNPRIVILEGED_ONLY のテストを追加しました
  • LXD_UNPRIVILEGED_ONLY が設定されている場合のエラーメッセージをわかりやすくしました
  • lxd/containers: 操作の進捗表示ができるようになりました
  • lxc/rename: リモートでのリネームが行えるようにしました
  • lxd/db: 空のクエリでクラッシュしなくなりました
  • lxd/sql: カスタムのテーブルレンダラーを削除しました
  • lxd/network: fan のサブネット計算ロジックを修正しました
  • weblate から翻訳を更新しました
  • lxc/main: リモートキャッシュの問題を修正しました
  • lxc/storage_volumes: 色々な問題を修正しました
  • tests: 追加のクリーンアップコードを追加しました
  • lxd/storage: アップグレード時に zfs.pool_name も設定するようにしました
  • migration: btrfs のライブマイグレーションの問題を修正しました
  • lxd/containers: unix ドメインソケット経由のホットプラグロジックの問題を修正しました
  • lxc/list: API を呼ぶ回数を減らしました
  • lxd デーモンと waitready 間のやりとりをノンブロッキングにしました
  • 起動時のログ出力を増やしました
  • waitready のログエイリアスを削除しました
  • db.OpenCluster のログエイリアスを削除しました
  • エラーパラメータの受取を Unavailable にしました
  • ディスクから追加でクエリをロードするためのメソッド Schema.File() を新たに追加しました
  • (訳注: クラスタ環境での(だと思う…)) patch.local.sql と patch.global.sql のサポートを追加しました
  • 総合テストを追加しました
  • ディレクトリの再起コピー用の shared.DirCopy を追加しました
  • database.md を更新しました
  • クラスタ環境でない場合にグローバルデータベースをバックアップするようにしました
  • lxd/init: クラスタのユーザが fan overlay をセットアップできるように lxd init を拡張しました
  • lxd init: 既存のブリッジを設定する場合の maas.api.url のチェックの問題を修正しました
  • raft のスナップショットをより頻繁に取得し、シャットダウン時にも取得するようにしました
  • スキーマだけをダンプするために lxd sql--schema オプションを追加しました
  • lxd sqlpatch.*.sql の情報について database.md を更新しました
  • データベースのデータやスキーマをダンプする方法を文書化しました
  • シェルスクリプトの記述を修正しました
  • 出力が多すぎるのでスナップショットのログを無効化しました
  • コマンドを sqlite3 ツールと合わせるように .dump.schema にしました
  • make i18n を実行しました
  • xattr: 空の値をサポートするようにしました
  • doc: s/status command/info command/
  • lxd/init: パスワードなしの場合のふるまいを説明するようにしました
  • waitready の出力を減らしました
  • devices: ソースデバイスのモード (訳注: デバイスファイルのモードビット) をコピーするようにしました
  • lxd/init: もしネットワークの設定がない場合は --auto で設定するようにしました
  • container_lxc: optional なプロパティのディスクデバイスの問題を修正しました
  • test: busybox イメージを修正しました
  • lxc/action: pause の問題を修正しました
  • lxd/callhook: LXD_SOCKET を使って LXD のソケットパスを指定できるようになりました
  • forkfile: 必要なときだけ O_RDWR で open するようにしました
  • クラスタ環境でない場合のみコピーをローカルだとみなすようにしました
  • api: backup 構造体を追加しました
  • client: バックアップ機能を実装しました
  • shared: RunCommandWithFds を実装しました
  • btrfs: doContainerCreate() を追加しました
  • btrfs: doContainerSnapshotCreate() を追加しました
  • ceph: リストア時に確実にファイルシステムの整合性が保てるようにしました
  • ceph: スナップショット取得時に確実にファイルシステムの整合性が保てるようにしました
  • ceph: doContainerCreate() を追加しました
  • ceph, lvm, zfs: doContainerMount() を追加しました
  • zfs: do*() ヘルパーを追加しました
  • lvm: 内部的なプール名を使うようにしました
  • lxd-p2c: ターゲットの URL をより賢く扱うようにしました
  • lxd-p2c: 引数がない場合のエラーを無視するようにしました
  • lxd-p2c: 失敗時にコンテナを削除するようにしました
  • lxd-p2c: rsync のエラーをわかりやすく報告するようにしました
  • lxd-p2c: rsync の引数を上書きできるようにしました
  • クラスタデータベースをシリアルに読むようにしました
  • doc: API 拡張の Typo を修正しました
  • コンテナ・スナップショットの publish API のリクエストを関連するノードにリダイレクトするようにしました
  • gpu: デフォルトのデバイスモードにフォールバックするようにしました
  • ノード固有のプールとネットワークの設定キーについてのエラーメッセージと説明を改良しました
  • ソースコード中の長い行の改行を調整しました
  • lxd-p2c: rsync のバージョンチェックを行うようにしました
  • lvm: s/LXDPool/LXDThinPool/g
  • データベースの相互作用を防ぐために expandConfig 関数から expandConfigFromProfiles を分離させました
  • 他のクラスタノードにプロファイルの変更をブロードキャストするようにしました
  • lvm: LXD で使っているプール名を使うようにしました
  • tests: ceph の pg_num を 1 に減らしました
  • lxc-to-lxd: LXD_SOCKET 環境変数を参照するようになりました
  • マニュアルで liblxc 構造体をリリースするようになりました
  • マニュアルでの GC 呼び出しを削除しました
  • lxd/containers: metadata 内の fd のリークを修正しました

サポートとアップグレード

LXD 3.0.1 は 2023 年 6 月までサポートされる最新の LTS リリースです。利用可能になった最新のバグ修正リリースに更新することをお勧めします。

ダウンロード

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 は ダウンロードページ から取得できます。

LXD 3.0.0 リリースのお知らせ

2nd of April 2018

はじめに

LXD チームは LXD 3.0.0 のリリースをお知らせできることをうれしく思います! このリリースは LXD プロジェクトの2つめの LTS リリースです。そして 2023 年の 6 月までサポートされます。

新機能(2.21 以降)

LXD 3.0 は次の 2 年間のメインの LTS リリースとなります。最新の機能のリリースから短い間隔でバックポートされたバグフィックスの更新がなされます。

LXD 2.21 のリリース以来 3 ヶ月以上をかけて、LXD 3.0 で実装したかった機能をすべてリリースしました。そして既存コードを多数整理して、LTS の間メインテナンスしやすくなるようにしました。以下がメインのハイライトです。

クラスタリング

LXD 3.0 でのもっとも大きな新機能がクラスタリングサポートの導入です。 同じような設定を持つ LXD サーバをクラスタの一部として連携させることができます。そして大きなひとつの LXD サーバとして外部に見せられます。

LXD データベースは dqlite (sqlite3 と raft の組み合わせ)を使ってレプリケートされます。クラスタメンバーの 3 つが任意の時点でデータベース全体のコピーを持つようにします。

LXD クラスタリングをセットアップするための特別なシステム設定やサービスは必要ありません。必要なのは同様のネットワークとストレージプロパティを持つ、いくつかのマシンか VM が利用できることだけです。lxd init コマンドを使って、クラスタの作成やサーバをクラスタに追加する操作を、順に質問に答えることで行えます。

マシンとネットワークを割り当てるために、MAAS を使って 3 ノードの LXD クラスタを設定する録画をお見せしましょう:

この機能のメインコントリビューターである Free Ekanayaka も FOSDEM 2018 で LXD クラスタの長いプレゼンテーションを行いました。こちらでチェックできます:

ドキュメントもこちらでチェックできます: https://lxd.readthedocs.io/en/stable-3.0/clustering/

lxd-p2c を使った物理からコンテナへのマイグレーション

lxc-p2c という名前の新しいツールが、システムのファイルシステムを LXD コンテナに LXD API を使ってインポートできます。

ツールでのコピーが終わると、出来上がったバイナリーは、コンテナを作成したい任意のシステムに転送できます。リモートの LXD サーバを指定すると、システムのファイルシステムすべてが LXD のマイグレーション API を使って転送され、新しいコンテナが作成されます。

この機能のメインのコントリビューターである Stéphane Graber が FOSDEM 2018 でこの機能についてのプレゼンテーションを行いました。ビデオがご覧いただけます:

NVIDIA の動的なパススルーのサポート

NVIDIA GPUをコンテナ内で使う人たちの共通の問題は、ユーザスペースのライブラリをカーネルドライバと同期させておくことが必要なことです。

これは、コンテナの所有者がホストの所有者と異なる場合、警告なしに同期しなくなる可能性があり、特に難しくなります。

新たに導入された設定である nvidia.runtime と、nvidia-container-cli ツールと liblxc 3.0 を組み合わせると、ホスト上で正しい情報を自動で検出し、コンテナの起動時に必要な情報を与えるようになりました。(訳注: よくわからないけど、nvidia.runtime の設定とデバイスの設定を行えば、色々情報はホスト上で lxc が集めて、cli ツールやライブラリもコンテナ上で使えるようにしてコンテナを起動する、という感じか? 下の asciinema を参照)

これにより大量のスペースを節約でき、メンテナンスが大幅に簡素化されます。

Unix キャラクタデバイス、Unix ブロックデバイスのホットプラグのサポート

unix タイプのデバイスに新しい必須プロパティを追加しました。false に設定すると、LXD は要求されたパスがホスト上で利用できるようになってから、自動的にコンテナに追加します。

これで次のようなことができるようになります:

lxc config device add c1 ttyUSB0 unix-char path=/dev/ttyUSB0 required=false

c1 コンテナは、USB シリアルデバイスがシステムにプラグインされるとすぐにアクセスし、システムから抜かれると自動的に削除されます。

ストレージボリュームのローカルコピー/移動

ストレージプール間で、カスタムのストレージボリュームをコピーや移動ができるようになりました。

stgraber@castiana:~$ lxc storage volume copy ssd/example default/example
Storage volume copied successfully!

stgraber@castiana:~$ lxc storage volume move ssd/example default/example
Storage volume moved successfully!

カスタムストレージボリュームのリモート転送

新しいストレージマイグレーション API が導入されました。コンテナのマイグレーションで使うのと同じ構文を使って、LXD サーバ間で同様に操作できます。

ネットワーク接続を転送する新しい proxy デバイスタイプ

ホストとコンテナ間の TCP 接続を転送できるデバイスタイプである proxy デバイスタイプが新たに追加されました。

例えば、ホスト上の port 80 への任意の接続をコンテナ c1 の localhost の IP アドレスの 80 番に転送するには:

lxc config device add c1 http proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80

/dev/lxd を経由したイベント通知

コンテナ内に対して提供されている REST API 使い、設定やデバイスが追加、削除、変更された場合のイベントを受け取ることができるようになりました。

root@c1:~# curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" --header "Sec-WebSocket-Version: 13" --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" --unix-socket /dev/lxd/sock lxd/1.0/events
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: qGEgH3En71di5rrssAZTmtRTyFk=

{"metadata":{"key":"user.foo","old_value":"","value":"bar"},"timestamp":"2018-04-02T23:58:54.433992023-04:00","type":"config"}
{"metadata":{"action":"added","config":{"path":"/home","source":"/home","type":"disk"},"name":"home"},"timestamp":"2018-04-02T23:59:25.65007597-04:00","type":"device"}

コマンドラインパーサーの変更

以前使っていたコマンドラインパーサの gnuflag は、LXD のコマンドライン構造とあまりマッチしておらず、ヘルプやエラーメッセージがわかりづらくなっていました。そこで、多数の主要な Go プロジェクトに使われている、cobra コマンドラインパーサに移行しました。

lxc list のプロセス数表示

lxc list で表示を指定できるカラムに "processes" が追加されました。コンテナの内部で動作しているプロセスの数を表示します。

stgraber@castiana:~$ lxc list -c nsN c1
+------+---------+-----------+
| NAME |  STATE  | PROCESSES |
+------+---------+-----------+
| c1   | RUNNING | 33        |
+------+---------+-----------+

lxc storage info サブコマンド

ストレージプールの情報をわかりやすく取得できる info サブコマンドが新たに追加されました:

stgraber@castiana:~$ lxc storage info ssd
info:
  description: ""
  driver: dir
  name: ssd
  space used: 9.29GB
  total space: 173.12GB
used by: {}

代替 IPv4 ゲートウェイ向けのオプション

LXD が管理するブリッジ用に新たに ipv4.dhcp.gateway オプションが利用できます。LXD 自身が作るゲートウェイ以外を設定することができ、LXD のブリッジと物理ネットワークを混在させる場合に便利です。

ファイル転送時のシンボリックリンクサポート

シンボリックリンクを含む再帰的なファイル転送を行う場合、リンク先のファイルの内容ではなく、転送先でもただしくシンボリックリンクとして作られるようになりました。

lxc monitor コマンドでのログエントリの Pretty レンダリング

LXD のログは、lxc monitor ツールを使って、イベントインターフェース経由で利用できました。しかし、そのままでは非常に読みにくいことがありました。

コマンドラインクライアントでは、このようなログイベントをフィルタし、再フォーマットして、サーバのログ出力を見ているように見れるようになりました。

stgraber@castiana:~$ lxc monitor --pretty --loglevel=info --type=logging
INFO[04-02|22:57:39] Stopping container                       action=stop created="2018-02-27 18:02:02 -0500 EST" ephemeral=false name=snapcraft stateful=false used="2018-03-29 15:33:05 -0400 EDT"
INFO[04-02|22:57:40] Stopped container                        action=stop created="2018-02-27 18:02:02 -0500 EST" ephemeral=false name=snapcraft stateful=false used="2018-03-29 15:33:05 -0400 EDT"
INFO[04-02|22:57:40] Starting container                       action=start created="2018-02-27 18:02:02 -0500 EST" ephemeral=false name=snapcraft stateful=false used="2018-03-29 15:33:05 -0400 EDT"
INFO[04-02|22:57:41] Started container                        action=start created="2018-02-27 18:02:02 -0500 EST" ephemeral=false name=snapcraft stateful=false used="2018-03-29 15:33:05 -0400 EDT"

lxc network list-leases サブコマンド

LXD が管理するブリッジの DHCP リース情報が API 経由とコマンドライン経由で直接取得できるようになりました。

stgraber@castiana:~$ lxc network list-leases lxdbr0
+-----------+-------------------+---------------+---------+
| HOSTNAME  |    MAC ADDRESS    |  IP ADDRESS   |  TYPE   |
+-----------+-------------------+---------------+---------+
| bar       | 00:16:3e:e0:36:3a | 10.166.11.185 | DYNAMIC |
+-----------+-------------------+---------------+---------+
| snapcraft | 00:16:3e:be:f1:87 | 10.166.11.120 | DYNAMIC |
+-----------+-------------------+---------------+---------+

lxc alias コマンド

コマンドエイリアスを管理するのに、設定ファイルを直接編集するのではなく、コマンドラインツールを使って直接コマンドエイリアスを一覧表示、作成、削除できるようになりました。

stgraber@castiana:~$ lxc alias list
+--------+-------------------------------------------+
| ALIAS  |                  TARGET                   |
+--------+-------------------------------------------+
| delete | delete -f                                 |
+--------+-------------------------------------------+
| ls     | list -c ns46S                             |
+--------+-------------------------------------------+
| ubuntu | exec @ARGS@ -- sudo --login --user ubuntu |
+--------+-------------------------------------------+

lxc config device override サブコマンド

デフォルトのネットワークインターフェースのような、プロファイルから継承したデバイスの特定のオプションを上書きするには、コンテナにローカルなデバイスを作成し、プロファイルと同じ名前を使う必要があります。このデバイスはプロファイルのデバイスよりも優先されますので、必要な任意の設定を行うことができます。

この操作を簡単にするために、変更が必要なコンテナ、デバイス、設定キーを指定して、lxc config device override を使うことができます。

stgraber@castiana:~$ lxc launch ubuntu:16.04 c1
Creating c1
Starting c1
stgraber@castiana:~$ lxc config device override c1 eth0 ipv4.address=10.166.11.42
Device eth0 overridden for c1
stgraber@castiana:~$ lxc restart c1
stgraber@castiana:~$ lxc list c1
+------+---------+---------------------+----------------------------------------------+------------+-----------+
| NAME |  STATE  |        IPV4         |                     IPV6                     |    TYPE    | SNAPSHOTS |
+------+---------+---------------------+----------------------------------------------+------------+-----------+
| c1   | RUNNING | 10.166.11.42 (eth0) | 2001:470:b368:4242:216:3eff:fed1:aff3 (eth0) | PERSISTENT | 0         |
+------+---------+---------------------+----------------------------------------------+------------+-----------+

オペレーションへの説明(description)の追加

すべてのバックグラウンド操作用に、新たに API に説明(description)フィールドが追加されました。コマンドラインツールからも表示できます。

stgraber@castiana:~$ lxc operation list
+--------------------------------------+-----------+---------------------+---------+------------+----------------------+
|                  ID                  |   TYPE    |     DESCRIPTION     | STATUS  | CANCELABLE |       CREATED        |
+--------------------------------------+-----------+---------------------+---------+------------+----------------------+
| 343b1700-c0bd-44fa-8b1f-e6a8fdb91b42 | WEBSOCKET | Migrating container | RUNNING | NO         | 2018/04/03 02:51 UTC |
+--------------------------------------+-----------+---------------------+---------+------------+----------------------+
| 65494c6e-7643-4ed5-8abf-497e57cfdd5c | WEBSOCKET | Executing command   | RUNNING | NO         | 2018/04/03 02:51 UTC |
+--------------------------------------+-----------+---------------------+---------+------------+----------------------+

lifecycle タイプのイベント

新しいイベントクラスとして "lifecycle" と呼ばれるクラスが導入されました。これにより、スクリプトや他の API を使ったクライアントから、LXD が何をしているのかトラッキングしやすくなりました。LXD のログメッセージを読み取る必要はありません。

stgraber@castiana:~$ lxc monitor --type=lifecycle
metadata:
  action: container-updated
  source: /1.0/containers/bar
timestamp: "2018-04-02T22:53:06.742745596-04:00"
type: lifecycle


metadata:
  action: container-started
  source: /1.0/containers/bar
timestamp: "2018-04-02T22:53:07.234066242-04:00"
type: lifecycle


metadata:
  action: container-shutdown
  source: /1.0/containers/bar
timestamp: "2018-04-02T22:53:19.885795751-04:00"
type: lifecycle


metadata:
  action: container-deleted
  source: /1.0/containers/bar
timestamp: "2018-04-02T22:53:23.813480386-04:00"
type: lifecycle

システム要件

LXD 3.0 の動作には Go 1.9 以上が必要です。現時点では、これより古いバージョンでもビルドできるかもしれませんが、今後のバグフィックスリリースでは、より新しい Go の関数を使わないという保証はありません。

サポートとアップグレード

LXD 3.0.0 は 2023 年 6 月までサポートされ、最新の LTS リリースとなります。LXD 2.0 はより遅いペースでのメンテナンスとなり、致命的なバグ修正とセキュリティ修正のみなされます。

LXD のフィーチャーブランチ (現在 2.21) のユーザは、サポートを継続して受け、すべてのバグ修正と LXD 3.0 が提供する新しい機能を使うには、3.0 へのアップデートが必要です。

LXD の LTS ブランチ (現在 2.0.11) のユーザは、LXD 2.0 を使い続け、重要なセキュリティ修正を入手するか、LXD 3.0 へアップグレードするかを選択できます。重要なプロダクション環境で LXD LTS を使っているユーザは、いくつかのテストシステムで LXD 3.0 へのアップグレードを開始し、潜在的な問題をチェックし、LXD 3.0.1 がリリースされた後で残りのマシンをアップグレードしても良いでしょう。

開発元からの snap パッケージの利用が可能に

LXD をインストールし、最新の状態に保つおすすめの方法は、開発元が提供する snap パッケージを使うことです。すべてのシステムが確実に LXD の同じコピーが実行されますし、バグレポートとデバッグのプロセスが簡単になります。

LXD の snap として、3 つのトラックが提供されます:

  • latest(最新の LXD フィーチャーリリース、現時点では 3.0)
  • 2.0 (前の LTS リリース)
  • 3.0 (現在の LTS リリース)

それぞれのトラックで、3 つのチャンネルがメンテナンスされます:

  • edge(開発元のリポジトリから取得したコードから自動的にビルドされテストされていない)
  • candidate (将来の stable ビルド、バージョンアップ前の約 48 時間のテスト用)
  • stable(現時点の stable なサポート対象のビルド)

LXD 3.0 をインストールし、1 ヶ月程度で 3.1 にアップグレードするには、次のように実行します:

snap install lxd

LXD 3.0 をインストールし、その後はバグフィックスとセキュリティフィックスのみ取得するには、つぎのように実行します:

snap install lxd --channel=3.0

ステージングのシステムを実行する場合、--channel=candidate--channel=3.0/candidate を使うことで、candidate チャンネルの LXD をそれぞれ実行できます。

トラックやチャンネルは snap refresh コマンドを使って変更できます。しかし LXD はダウングレードはサポートしませんので、実行しても起動しないでしょう。

ダウンロード

コントリビューター

LXD 3.0.0 は、全部で 18 名の貢献によりリリースされました。

LXD 2.21 リリースのお知らせ

20th of December 2017

このリリースに含まれる変更点

新機能 :

  • lxc start/stop/restart/pause コマンドに新たに --all フラグが追加されました
  • 新たに infiniband デバイスタイプを追加しました。これは SR-IOV カードと同様に Infiniband デバイスの物理的なパススルーをサポートします
  • 新たな設定項目 security.devlxd を追加しました。コンテナ内の /dev/lxd の存在をコントロールします
  • コンテナのライブマイグレーションでインクリメンタルなメモリコピーのサポートを追加しました。 この機能は新たな設定項目 migration.incremental.memory でコントロールします。
  • 新たに追加した設定項目 boot.stop.priority を使って、LXD が停止する際のコンテナのシャットダウン順序をコントロールできます。
  • MAAS を使ってネットワークを管理する LXD ユーザは、MAAS 内のすべてのコンテナを記録し、MAAS が管理するサブネット内で静的に割り当てを設定して、LXD から直接 MAAS を動かせるようになりました。 この機能は、デーモンで maas.api.urlmaas.api.key と、 ネットワークインターフェースで maas.subnet.ipv4maas.subnet.ipv6 を使ってコントロールします

バグ修正 :

  • client: すべてのユーザの入力を URL エスケープするようになりました (Issue #4077)
  • doc: 既存の LVM thinpool からストレージプールを作成する例を追加しました
  • doc: prlimits の markdown エスケープを修正しました
  • doc: スケーラビリティの問題をカバーするように LVM のドキュメントを更新しました
  • extra: profile の自動補完をいくつか修正しました
  • i18n: weblate から翻訳を更新しました
  • lxc: 初回の実行を設定ファイルのディレクトリではなく設定ファイルで検出するようにしました (Issue #4112)
  • lxc/exec: シェルに関係する動きをカバーするようヘルプを更新しました
  • lxc/shell: su -l を使うように変更しました (Issue #4036)
  • lxd-benchmark: デフォルトのコンテナ数を 100 から 1 に変更しました
  • lxd/certificates: 欠けていた name の値を追加しました (Issue #4080)
  • lxd/console: 新しい liblxc の変更にあわせて変更しました
  • lxd/containers: 実際にエラーが返るようにしました
  • lxd/containers: 新たなディスクデバイスの作成フォーマットを追加しました
  • lxd/containers: 新たな UNIX {char,block} デバイスの作成フォーマットを追加しました
  • lxd/containers: fstab 形式でパスのエスケープを行うようにしました (訳注: 空白を含むパスをエスケープする際に fstab のように '\040' を使うようにした) (Issue #4064)
  • lxd/containers: insertNetworkDevice() を修正しました (訳注: SR-IOV用のヘルパ関数を追加したのに伴う修正)
  • lxd/containers: シャットダウン時の競合状態を修正しました (Issue #4102)
  • lxd/containers: prlimit のエラー時の typo を修正しました
  • lxd/containers: 自動起動のエラーをログに記録するようにしました (Issue #4054)
  • lxd/containers: 必要なときだけ設定の初期化を行うようにしました
  • lxd/containers: 存在しない Nvidia GPU デバイスをスキップするようにしました (Issue #4044)
  • lxd/containers: tarball 内のソケットをスキップするようにしました
  • lxd/daemon: https のアドレスが設定されていない場合の問題を修正しました
  • lxd/daemon: ストレージの情報を適切にキャッシュするようにしました (Issue #4025)
  • lxd/dameon: execPath を上書きするための LXD_EXEC_PATH を追加しました
  • lxd/devlxd: イベントの準備でクリーンアップするようにしました
  • lxd/devlxd: 内部の構造体を適切にロックするようにしました
  • lxd/migration: CRIU の機能をチェックするためのハンドラを追加しました
  • lxd/migration: CRIU がサポートしている場合は、事前コピーのマイグレーションをデフォルトにしました
  • lxd/migration: ダンプ前のチェックを専用の関数に移動しました
  • lxd/migration: 不要な TODO コメントを削除しました
  • lxd/networks: インターフェース名に使える文字セットを拡張しました (Issue #4042)
  • lxd/patches: デバイスディレクトリがないコンテナをスキップするようにしました
  • lxd/patches: 新しいデバイス名スキームへの更新を行いました
  • lxd/storage: dir と btrfs の場合は HostPath を使うようにしました (訳注: snap の場合で既存のファイルシステムを bind マウントする場合のため)
  • lxd/storage/zfs: zfs get コマンドの引数の順序を修正しました
  • lxd/storage/zfs: ストレージプールのインポートの問題を修正しました (Issue #4056)
  • lxd/storage/zfs: 確実に devices, setuid, exec ができるようにしました (Issue #4084)
  • Makefile: sqlite3.h の検出方法を改良しました (Issue #4078)
  • shared/idmap: ハードリンクの扱いを修正しました
  • shared/util: EscapePathFstab() 関数を追加しました (Issue #4064)
  • shared/utils: シンボリックリンクを扱うようにしました (Issue #4097)
  • tests: コンソール API の動きの変化に合わせて変更しました
  • tests: ttyS0/ttyS1 がない場合を扱えるようにしました (s390xの場合)
  • tests: liblxc のバージョンが古い場合はコンソールのテストをスキップするようにしました
  • travis: Go 1.9 だけで実行するようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.20 リリースのお知らせ

15th of November 2017 新機能 :

  • lxc console サブコマンドと console API が追加されました。これにより、コンテナのブートコンソールにアタッチできたり、ブートログを取得したりできます
  • lxc operation コマンドが追加されました。バックグラウンド操作のリスト表示やキャンセルができます
  • SR-IOV ネットワークデバイス (nictype=sriov) が追加されました。新しい Virtual Function のダイナミックな追加を含みます
  • Macaroons 経由の外部認証への委譲をサポートしました (go-bakery v2 プロトコルを使います)

バグ修正:

  • client: GetOperationUUIDs と GetOperations を追加しました
  • client: interface のすべての返り値に変数名を付けました
  • doc: Markdown のエスケープを修正しました
  • doc: コンテナの設定キーでソートしました
  • doc: ネットワークの設定キーでソートしました
  • doc: server.md を設定キーでソートしました
  • doc: ストレージの設定キーでソートしました
  • extra: bash completion 新しい設定項目を追加しました
  • global: チェックされていなかった多数の変数にチェックを追加しました
  • global: いくつか typo を修正しました
  • global: "Temporary workaround for log15 API breakage" で行った変更を元にもどしました
  • global: ビルトインの log15 にスイッチしました
  • lxc/file: ダウンロードとアップロードのログを記録するようにしました (Issue #4018)
  • lxc/network: エラーメッセージを修正しました
  • lxd-benchmark: デフォルトの設定を取得するのに NewConfig を使うようにしました
  • lxd/containers: 実行時にバージョンを検出するようになりました (Issue #3934)
  • lxd/containers: lxc.conf や lxc.log を削除できなくなりました
  • lxd/containers: container.StateObject() を container.DaemonObject() にリネームしました
  • lxd/daemon: HTTP エンドポイントを管理するために endpoints.Endpoints クラスを追加しました
  • lxd/daemon: CPU のプロファイリングと goroutines の一覧出力を debug サブパッケージに追加しました
  • lxd/daemon: lxdTestSuite のセットアップと終了時のエラーメッセージを追加しました
  • lxd/daemon: 初期の Go レベルのデーモンのインテグレーションテストを追加しました
  • lxd/daemon: 構造化された設定の Map を実装するための lxd/config サブパッケージを追加しました。
  • lxd/daemon: 定期的に実行する関数のための lxd/task サブパッケージを追加しました
  • Lxd/daemon: メモリのプロファイリングをサポートする debug サブパッケージを追加しました
  • lxd/daemon: ノードレベルの設定を変更するためのハイレベルの API である node.Config を追加しました
  • lxd/daemon: 隔離を改良するために、テストごとに状態をクリーンアップするようにしました
  • lxd/daemon: task.Task を使った Daemon.Ready() 内で起動されるすべての goroutines をコントロールするようにしました
  • lxd/daemon: テストで Daemon.Ready() をスキップしなくなりました。これは無条件に実行できます
  • lxd/daemon: sys.OS 内でグローバルのパス変数を使わなくなりました
  • lxd/daemon: Daemon.Init() 内のロギングのセットアップを削除しました
  • lxd/daemon: "setup mode" のサポートを削除しました
  • lxd/daemon: 利便性のためにあった containerLXC.OS() を削除しました (訳注: この関数が返していた値の式を直接コード中に記載してもそんなにコードは変わらないため)
  • lxd/daemon: MockMode での不要なチェックを削除しました
  • lxd/daemon: REST と /dev/lxd http サーバの初期化部分を別ファイルに抜き出しました
  • lxd/daemon: デーモンのシャットダウンの際に graceful にタスクのキャンセルを行うようにしました
  • lxd/daemon: 不正な設定キーのエラーを改良しました (Issue #3925)
  • lxd/daemon: ディレクトリの初期化を sys.OS に移動しました
  • lxd/daemon: グローバル変数 execPath を sys.OS.ExecPath に移動しました
  • lxd/daemon: グローバル変数 aaAdminMove を sys.OS に移動しました
  • lxd/daemon: グローバル変数 aaAvailable を sys.OS に移動しました
  • lxd/daemon: グローバル変数 aaConfined を sys.OS に移動しました
  • lxd/daemon: グローバル変数 aaStacking を sys.OS に移動しました
  • lxd/daemon: グローバル変数 cgBlkioController を sys.OS に移動しました
  • lxd/daemon: グローバル変数 cgCpuController を sys.OS に移動しました
  • lxd/daemon: グローバル変数 runningInUserns を sys.OS に移動しました
  • lxd/daemon: オプショナルなデーモンの設定を DaemonConfig に移動しました
  • lxd/daemon: 残りのグローバル変数 cgXXX を sys.OS に移動しました
  • lxd/daemon: util.AppArmorCanStack を lxd/sys 内の private な appArmorCanStack に移動しました
  • lxd/daemon: ストリームラインのデーモンで初期化とシャットダウンを行うようにしました
  • lxd/daemon: ログの expire 処理を行う goroutine のライフサイクルをトラッキングするようにしました
  • lxd/daemon: イメージを切り詰めるためのスケジュール関数の調整を行いました
  • lxd/daemon: 環境変数の代わりにインスタンスレベルのキャッシュディレクトリ変数を使うようにしました
  • lxd/daemon: 環境変数の代わりにインスタンスレベルのログディレクトリ変数を使うようにしました
  • lxd/daemon: 環境変数の代わりにインスタンスレベルのディレクトリ変数を使うようにしました
  • lxd/daemon: デバッグ用ユーティリティを main_daemon.go に直接記載するようにしました
  • lxd/daemon: endpoints.Endpoints を Daemon 内に記載するようにしました
  • lxd/db: 低レベルのトランザクションを抽象化するために db.NodeTx 構造体を追加しました
  • lxd/db: DB のスキーマが新たに作成されたときに実行するための SQL ステートメントを設定するために Schema.Fresh() を追加しました
  • lxd/db: ノードローカルな設定値を取得したり変更したりするための db API を追加しました
  • lxd/db: データベース関連のユニットテスト用のヘルパー db.NewTestNode を追加しました
  • lxd/db: 設定テーブルを変更するための低レベルのクエリヘルパを追加しました
  • lxd/db: query.Count ユーティリティ (訳注: SELECT count(*) を実行する) を追加しました
  • lxd/db: 個々の更新をテストするための Schema.ExerciseUpdate() を追加しました
  • lxd/db: schema.Ensure を graceful に中止する機能を追加しました
  • lxd/db: スキーマを作成するロジックを完全に schema.Schema に移動しました
  • lxd/db: いくつかの sql.DB.Begin の呼び出しを db.DB.Begin に変更しました
  • lxd/db: 低レベルの db.Begin 関数の残りの呼び出しを変更しました
  • lxd/db: Daemon.nodeDB へのすべての参照を削除しました
  • lxd/db: lxd/db/schema/query.go の 誤った tx.Exec 引数を修正しました
  • lxd/db: certificate DB API を db.Node ファサードに移動しました
  • lxd/db: container DB API を db.Node ファサードに移動しました
  • lxd/db: devices DB API を db.Node ファサードに移動しました
  • lxd/db: image DB API を db.Node ファサードに移動しました
  • lxd/db: network DB API を db.Node ファサードに移動しました
  • lxd/db: ノードレベルのスキーマの更新を自身のサブパッケージである db/local/ に移動しました
  • lxd/db: patch DB API を db.Node ファサードに移動しました
  • lxd/db: profile DB API を db.Node ファサードに移動しました
  • lxd/db: storage DB API を db.Node ファサードに移動しました
  • lxd/db: 低レベルの db.Exec() 関数を lxd/db/ の外で直接使うのを止めました
  • lxd/db: Daemon.db を Daemon.nodeDB にリネームしました
  • lxd/db: db.Exec を db.exec にリネームし、エクスポートしなくしました
  • lxd/db: db.QueryScan を db.queryScan にリネームし、エクスポートしなくしました
  • lxd/db: ホワイトボックステストなので db_test.go を db_internal_test.go にリネームしました。
  • lxd/db: State.DB を State.NodeDB にリネームしました
  • lxd/db: Schema.Ensure() で初期のスキーマバージョンを返すようにしました
  • lxd/import: 削除時に正しい VG 名を使うようにしました
  • lxd/main: --print-goroutines-every の出力を修正しました
  • lxd/networks: トンネルを利用するときの 1400 の MTU チェックを削除しました (Issue #3999)
  • lxd/seccomp: security.syscalls.blacklist のハンドリングを修正しました
  • lxd/storage: storageShared.OS() の使用を削除しました
  • lxd/storage: btrfs に対する thinpool で新しい UUID を生成するようにしました
  • lxd/storage/zfs: zpool が存在しないときでもインポートするようにしました (Issue #3976)
  • lxd/storage/zfs: 新しい ZFS リリース向けの更新を行いました (Issue #3986)
  • shared: 規約に沿って名付けられた証明書を返す shared.KeyPairAndCA 関数を追加しました
  • shared: snap で stdin/stdout 同士のファイル転送の問題を修正しました
  • shared: 最新の gofmt に対応しました
  • shared/api: AuthMethods に API 拡張ラベルを追加しました
  • shared/log15: ベンダの log15 を shared/log15 にコピーしました
  • shared/logger: グローバルのロガーをテスト用ロガーにリダイレクトするヘルパを追加しました
  • shared/logging: freebsd を log_posix.go のビルドタグに追加しました
  • shared/version: api10Get から APIExtensions を抽出しました
  • shared/version: shared/version のバージョンの宣言をいくつかのファイルに分割しました
  • tests: ユニークな btrfs の UUID の生成テストを追加しました
  • tests: 使われていない変数のテストを追加しました
  • tests: typo のチェックを追加しました
  • tests: インポートのチェックに godeps を使わないようにしました
  • tests: liblxc < 2.1 の場合は prlimits のテストをスキップするようにしました
  • tests: 新たな依存関係を追加しました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.11 リリースのお知らせ

19th of October 2017 これは LXD 2.0 の 11 回目のバグフィックスリリースです。

LXD 2.0.10 以降の変更は以下の通りです

細かな改良点 :

  • LXD 2.0.11 は snap で利用できるようになり、"2.0" トラックからインストールできます
  • ドキュメントが ReadTheDocs で読めるようになりました : https://lxd.readthedocs.io/en/stable-2.0/
  • イメージのダウンロードを中断できるようになりました
  • 新たな security.idmap.base.config キーを追加しました (コンテナのベースの uid/gid を上書きします)
  • イメージの差分ダウンロードのサポートを追加しました
  • リソース制限のプロキシとしてインスタンスタイプを実装しました (訳注: リソース制限を簡単に設定できるようにインスタンスタイプを実装)
  • user-agent 文字列が OS とカーネルの情報を含むように拡張されました
  • クライアントライブラリと関連するコードが master と同期されました
  • コマンドラインクライアントが新たなクライアントライブラリに移植されました

Bugfixes:

  • client: RemoteOperation に CancelTarget を追加しました
  • client: CreateContainerFromImage 関数を追加しました
  • client: insecureSkipVerify フラグを ConnnectionArgs 構造体に追加しました
  • client: I/O の間操作をブロックする追加の実行オプションを追加しました
  • client: GetServerResources() を追加しました
  • client: GetStoragePoolResources() を追加しました
  • client: 後方互換性のために image_create_aliases を追加しました
  • client: RenameStoragePoolVolume() を追加しました
  • client: LXD からのイメージダウンロードのキャンセルができるようになりました
  • client: ベースとなる http クライアントを指定できるようになりました
  • client: イメージをダウンロードする関数内でのコードの重複をなくしました
  • client: エラーハンドリングの共通化を行いました
  • client: 停止しているコンテナのライブマイグレーションを行おうとしないようにしました
  • client: 新しいクライアントから experimental のタグを削除しました
  • client: イメージサーバがネットワーク経由で待ち受けてない場合、コピーが失敗するようにしました
  • client: オペレーションハンドラ内のクラッシュを修正しました
  • client: cookiejar がない場合にクラッシュする問題を修正しました
  • client: public な LXD のリモートホストを扱う際の問題を修正しました
  • client: イメージコピーの問題を修正しました
  • client: non-interactive モードの実行時にハングする問題を修正しました
  • client: イベントハンドラのセットアップで競合が起きる可能性があった問題を修正しました
  • client: 操作処理中の競合を修正しました
  • client: コンテナとスナップショットのコピーを実装しました
  • client: コンテナコピーの push モードと relay モードを実装しました
  • client: リモート操作を実装しました
  • client: イメージコピーの際のエラーを改良しました
  • client: マイグレーションをリレーするコードを改良しました
  • client: プロトコルを追跡するようにしました
  • client: 使用中の HTTP クライアントを取得できるようになりました
  • client: Authentication Interactor を設定できるようにしました
  • client: CopyImage をターゲットサーバへ移動しました (訳注: 処理の重複を防ぎ整合性を取れるように関数が属する構造体を変更した)
  • client: 値がある場合だけファイルに関するヘッダを設定するようにしました
  • client: リモートの切断を正しく扱うようにしました
  • client: リクエストに関するログを Debug レベルにしました
  • client: ConnectPublicLXD のロジックを簡素化しました
  • client: Macaroons ベースの認証をサポートしました
  • client: master ブランチと同期しました
  • client: CopyImage では RemoteOperation を使うようにしました
  • config: CookieJar のサポートを追加しました
  • config: スナップショット名中に ":" が含まれる場合の処理を改良しました
  • doc: blkio コントローラの制限について注意書きを追加しました
  • doc: macvlan とブリッジに関するセクションを追加しました
  • doc: SUPPORT.md を追加しました
  • doc: インスタンスタイプについて記載しました
  • doc: squashfs イメージも使えることを追加しました
  • doc: exec セッション中の control API を文書に追加しました
  • doc: セキュリティに関連する文書を作り直し詳細にしました
  • doc: Issue 用テンプレートの lxd.log の場所を修正しました
  • doc: 空白、カンマ、クオート、括弧を修正しました
  • doc: コンテナ内の環境についての文書を追加しました
  • doc: Issue 用のテンプレートを更新しました
  • doc: README の説明を見直しました
  • doc: コンテナの設定キーでソートしました
  • doc: server.md を設定キーでソートしました
  • doc: containers.md を更新しました
  • extra/lxc-to-lxd: 不適切なテストを修正しました
  • extra/lxc-to-lxd: デフォルトで drop されるケーパビリティを無視しました
  • extra/lxc-to-lxd: sysfs/proc のマウントを無視しました
  • extra/lxc-to-lxd: lxc.seccomp を適切に扱うようにしました
  • i18n: クライアントのメッセージの日本語翻訳を更新しました
  • lxc: 操作をキャンセルするための機能を追加しました
  • lxc: クロスプラットフォームで HOME を扱えるようにしました
  • lxc: 実際に動作するサンプルを示すように help を修正しました
  • lxc: プロパティを追加したとき、インポートがクラッシュする不具合を修正しました
  • lxc: 進捗レポートの競合を修正しました
  • lxc: コピー時にエイリアスのソースを適切に記録するようにしました
  • lxc: リモートのプロトコル変換を再導入しました
  • lxc: 設定されている場合は HOME を使うようにしました
  • lxc/config: 一度に複数のデバイスを削除できるようにしました
  • lxc/copy: 進捗をレポートするようにしました
  • lxc/delete: --force の使い方を修正しました
  • lxc/exec: Windows でのシグナルハンドラを修正しました
  • lxc/exec: Windows へのポーティングを修正しました
  • lxc/file: 名前にスペースが含まれたファイルの push/pull の問題を修正しました
  • lxc/file: Windows のファイルシステムからファイルのパーミッションを読み取るようにしました
  • lxc/file: push/pull で shared.HostPath を使うようにしました
  • lxc/image: エクスポートした際のファイル名では、常に長いフィンガープリントを使うようにしました
  • lxc/image: "cached" フラグを表示するようにしました
  • lxc/image: simplestreams リモートでのエイリアスの問題を修正しました
  • lxc/image: "ixc image copy" が取得元を記録していない問題を修正しました
  • lxc/image: export した際のファイル名に関するリグレッションを修正しました
  • lxc/image: フィルタのハンドリングを改良しました
  • lxc/image: "lxc image copy" を再度速くしました
  • lxc/image: イメージにエイリアスが設定されている場合、エイリアスを更新するようにしました
  • lxc/image: import/export で shared.HostPath を使うようにしました
  • lxc/init: ランダムな名前をつけたコンテナの起動に失敗する問題を修正しました
  • lxc/list: --columns と --fast を同時に指定した場合にエラーになっていた問題を修正しました
  • lxc/move: 強制的に削除するようにしました
  • lxc/publish: フィンガープリントの表示の問題を修正しました
  • lxc/remote: public なリモートサーバでは証明書が不要になりました
  • lxc/utils: 進捗表示での競合の可能性をなくしました
  • lxc/utils: エラー表示でフォーマット指定を行う処理が抜けていた問題を修正しました
  • lxd-benchmark: CreateContainers 関数を追加しました
  • lxd-benchmark: csv によるレポート出力を追加しました
  • lxd-benchmark: freezeContainer 関数を追加しました
  • lxd-benchmark: processBatch 関数を追加しました。この関数は SpawnContainers と DeleteContainers で使われます
  • lxd-benchmark: "launch" と同等の命令として廃止予定の "spawn" を追加しました
  • lxd-benchmark: start と stop コマンドを追加しました
  • lxd-benchmark: StartContainers 関数を追加しました
  • lxd-benchmark: StopContainers 関数を追加しました
  • lxd-benchmark: spawn コマンドの名前を launch に変更しました
  • lxd-benchmark: deleteContainer と copyImage を独立した関数にしました
  • lxd-benchmark: ensureImage を独立した関数にしました
  • lxd-benchmark: getBatchSize を独立した関数にしました
  • lxd-benchmark: GetContainers を独立した関数にしました
  • lxd-benchmark: ロジックを独立したパッケージにしました
  • lxd-benchmark: PrintServerInfo を独立した関数にしました
  • lxd-benchmark: printTestConfig を独立した関数にしました
  • lxd-benchmark: ローカルのエイリアスを与えられた場合の ensureImage の問題を修正しました
  • lxd-benchmark: ローカルイメージの扱いの問題を修正しました
  • lxd-benchmark: 操作時間を返すようにしました
  • lxd-benchmark: プライベートな関数を別のファイルにわけました
  • lxd-benchmark: デフォルトの設定値を取得する際に NewConfig を使うようにしました
  • lxd: 初期の lxd/sys サブパッケージと OperationSystem 構造体を追加しました
  • lxd: Typo を修正しました (now -> Know)
  • lxd: .dir-locals.el を flycheck でいい感じで動くようにしました
  • lxd: InternalError が使われているところの何箇所かを SmartError に置き換えました
  • lxd: 可能な場合は Daemon の代わりに sql.DB、sys.OS を使うようにしました
  • lxd/apparmor: apparmor の使われない deny を削除しました
  • lxd/apparmor: 新しい stacking 文法をサポートしました
  • lxd/containers: LXD snap にディスクデバイスを与えられるようになりました
  • lxd/containers: メモリ使用量の表示の際のエラー処理を改良しました
  • lxd/containers: コンテナのマウントポイントもチェックするようになりました
  • lxd/containers: ディスクデバイスの存在をチェックするようになりました
  • lxd/containers: update 時に一時的なキーをクリアするようにしました
  • lxd/containers: exec 中の poll で POLLNVAL を検出するようにしました
  • lxd/containers: ディレクトリマウント(訳注: bind マウント) の読み込み専用モードの際の問題を修正しました
  • lxd/containers: "dev" という名前のネットワークインターフェース名でも動くようにしました
  • lxd/containers: ストレージの作成に失敗した場合には DB から削除するようにしました
  • lxd/containers: コンテナの削除が失敗した場合の根本的なエラーを表示するようにしました
  • lxd/containers: LXC 2.1 の設定キーのサポートを追加しました
  • lxd/containers: lxc.network.N (訳注: LXC 2.1 形式のネットワーク設定) を使うようにしました
  • lxd/daemon: prune 中 (訳注: 期限切れのキャッシュの削除中) はイメージを更新しないようにしました
  • lxd/daemon: d.os.Init の実行をすべてのパスが作られた後に行われるようにしました
  • lxd/daemon: Daemon.ExpireLogs を独立した関数にしました
  • lxd/daemon: Daemon.GetListeners を独立した関数にしました
  • lxd/daemon: Daemon.httpClient を独立した関数にしました
  • lxd/daemon: Daemon.ListenAddresses を独立した関数にしました
  • lxd/daemon: Daemon.PasswordCheck を独立した関数にしました
  • lxd/daemon: Daemon.SetupStorageDriver を独立した関数にしました
  • lxd/daemon: 高レベルエンティティ API 中の Daemon を State に置き換える作業が完了しました
  • lxd/daemon: config のトリガーの扱いを修正しました
  • lxd/daemon: 不正な設定キーのエラーを改良しました
  • lxd/daemon: 存在しない設定項目に対する警告をログに出力するようになり、クラッシュしなくなりました
  • lxd/daemon: Daemon.BackingFs を OS 構造体に移動させました
  • lxd/daemon: Daemon.IdmapSet を OS.IdmapSet に移動させました
  • lxd/daemon: Daemon.isRecursionRequest を lxd/util サブパッケージに移動させました
  • lxd/daemon: Daemon.lxcpath を OS.LxcPath に移動させました
  • lxd/daemon: Daemon.MockMode を OS.MockMode に移動させました
  • lxd/daemon: Deamon.CheckTrustState と Deamon.isTrustedClient を lxd/util に移動させました
  • lxd/daemon: filesystemDetect 関数を lxd/util サブパッケージに移動させました
  • lxd/daemon: lxd/util.go を自身 lxd/util のサブパッケージに移動しました
  • lxd/daemon: すべてのモデルエンティティの Daemon を State に置き換えました
  • lxd/daemon: 設定が変わったときはイメージの自動更新ループをリセットするようにしました
  • lxd/daemon: タイマーの処理を簡素化しました
  • lxd/daemon: select を使用し、goroutine を節約するようにしました
  • lxd/db: 共通のクエリヘルパとして db/query サブパッケージを追加しました
  • lxd/db: データベースのスキーマを管理するための db/schema サブパッケージを追加しました
  • lxd/db: query.Transaction を追加しました
  • lxd/db: 一連のスキーマ更新を平坦化する Schema.Dump() メソッドを追加しました
  • lxd/db: Map からスキーマを作るのが便利なように schema.NewFromMap を追加しました
  • lxd/db: データベース更新から自動的にデータベーススキーマを生成するようになりました
  • lxd/db: db へのパッチで不要である特別なモックモードを実行しないようにしました
  • lxd/db: Daemon に対する依存を削除しました
  • lxd/db: スキーマバージョン 30 と 31 間の更新の不適切な DB スキーマを修正しました
  • lxd/db: 中間のバージョンを挿入しないデータベースの更新ロジックを修正しました
  • lxd/db: db*.go ファイルを自身の db/ サブパッケージへ移動させました
  • lxd/db: デーモンレベルのロジックから DB レベルの更新ロジックを分離しました
  • lxd/db: 新しいスキーマコードを db.go で使うようにしました
  • lxd/devices: CPU スケジューラの isolcpu をサポートしました
  • lxd/devices: デフォルトではすべての CPU を隔離しないようにしました
  • lxd/devices: デバイス ID のメジャーとマイナー番号の扱いを修正しました
  • lxd/devices: デバイスのソート順を修正しました
  • lxd/devices: 空の isolcpus を扱えるようにしました
  • lxd/devices: マイナーデバイス番号の 32bit すべてを取得するようにしました
  • lxd/events: イベントハンドラ中の競合を修正しました
  • lxd/images: 実際に消去するイメージのリストを取得するようにしました
  • lxd/images: 常にフィンガープリントを展開するようになりました
  • lxd/images: リフレッシュ時に古い "cached" という値も渡すようにしました
  • lxd/images: イメージが見つからない場合にエラー表示を行うようにしました
  • lxd/images: エラーの場合はリターン値の構造体にアクセスしないようにしました
  • lxd/images: フィンガープリントが与えられた場合のイメージのリフレッシュの問題を修正しました
  • lxd/images: 圧縮コマンドに与える引数の順序を修正しました
  • lxd/images: 複数回アンロックの可能性があったのを修正しました
  • lxd/images: 部分的なフィンガープリントを使ったプライベートイメージのコピーの問題を修正しました
  • lxd/images: イメージの自動更新ロジックにあったリグレッションを修正しました
  • lxd/images: アクセスプロトコルが "direct" の場合はイメージ情報を初期化するようにしました
  • lxd/images: イメージの有効期限を適切に取得するようにしました
  • lxd/images: キャッシュの期限切れを無効にする設定通りに動作するようにしました
  • lxd/images: RFC3339 形式で UploadedAt を保存するようにしました
  • lxd/init: コマンドラインのフラグをパースする cmd.Parser ヘルパを追加しました
  • lxd/init: インタラクティブ・自動の初期化ロジックとあらかじめ準備した設定を与える初期化ロジックを統合しました
  • lxd/init: 初期化の際の質問を行うコードを独立したメソッドに分離しました
  • lxd/init: 初期化の際のデータを構造体に設定するロジックを独立したメソッドに分離しました
  • lxd/init: --auto 引数のバリデーションを別のメソッドに分離しました
  • lxd/init: cmdInit をユニットテスト可能なようにログを生成するようにしました
  • lxd/init: 状態を変えるインライン関数を独立したメソッドに移動させました
  • lxd/init: cmd.Parser を main.go に追加しました
  • lxd/init: 適切にデフォルトのポートを設定するようにしました
  • lxd/main: ログのパスが設定されていないときのエラーメッセージを修正しました
  • lxd/migration: ライブマイグレーションでの不適切な URL の問題を修正しました
  • lxd/networks: ipt_checksum は不要になりました
  • lxd/patches: UploadAt を RFC3339 形式に変換するようにしました
  • lxd/rsync: rsync の際、sparse ファイルを扱えるようになりました
  • lxd/shutdown: 指定された場合だけタイムアウトを待つようにしました
  • lxd/storage/btrfs: btrfs のバグを回避するようにしました
  • lxd/storage/dir: sync がエラーになった際に unfreeze するようにしました
  • lxd/storage/rsync: sync 中の存在しないファイルの警告を無視するようになりました
  • Makefile: static-analysis ターゲットを修正しました
  • Makefile: po の前に pot を更新するようにしました
  • network: 無条件に制限を更新しないようにしました
  • shared: ホストのパスを変換するラッパーを追加しました
  • shared: log モジュールの使用をやめました
  • shared: snap のパスの不適切なチェックを修正しました
  • shared: GroupId 関数で buf が大きくなっていく問題を修正しました
  • shared: golint の警告が出る部分を修正しました
  • shared: GetRemoteCertificate を lxc/remote から (sharedに) 移動しました
  • shared: idmap と acl 関数は別パッケージに分離しました
  • shared: 当面 testhelpers を shared/osarch に移動します
  • shared: RunCommand のカスタムエラータイプを使うようにしました
  • shared: subtest の互換性を提供するパッケージを shared/subtest 与えるようにしました
  • shared: Websocket プロキシ はすべてをプロキシするようにしました
  • shared/api: コンテナの metadata.yaml とテンプレートファイルを編集する API を追加しました
  • shared/api: コンテナのテンプレートを操作する API を追加しました
  • shared/api: サーバのレスポンスに関する API 構造体を追加しました
  • shared/api: ストレージプールリソースを Resource API 構造体に追加しました
  • shared/api: StorageVolumePost を追加しました
  • shared/api: Macaroons ベースの認証の指示子のサポートを追加しました
  • shared/api: API 拡張は構造体の一番最後に移動しました
  • shared/api: 完全な push マイグレーションを実装しました
  • shared/api: Migration: ステートフル/ステートレスなスナップショットのマイグレーションを追加しました
  • shared/api: ストレージ関連のファイルをプールとボリュームに分けました
  • shared/api: master ブランチと Sync しました
  • shared/canceler: 並行ダウンロードをキャンセルできるようにしました
  • shared/canceler: 返り値の順序を修正しました (訳注: 関数の返り値を受け取る際、間違った変数で受け取っていた)
  • shared/canceler: Request のキャンセルチャンネルを使うようにしました
  • shared/cmd: cmd パッケージ内では testify に依存しなくなりました
  • shared/cmd: master と一致するように更新しました
  • shared/idmap: ホストのidとサブidが交差するのは許可されなくなりました
  • shared/idmap: 多数の問題を修正しました
  • shared/idmap: テストを修正しました
  • shared/idmap: CL に関するエラー出力をより冗長にしました
  • shared/logger: log15 API が壊れているのに対する一時的な回避策を取りました
  • shared/network: TLS Cipher をさらにいくつか追加しました
  • shared/network: TLS の扱いを master に Sync しました
  • shared/osarch: /etc/os-release をパースする関数を追加しました
  • shared/osarch: アーキテクチャのエイリアスを追加しました
  • shared/osarch: いくつかのアーキテクチャにおける uname の扱いを修正しました
  • shared/util: テンポラリファイルを作るヘルパーを追加しました
  • shared/util: uname を取得するヘルパーを独立させました
  • shared/util: ysconf() が -1 を返した時、サイズを推測するようにしました <!-- Guess size when sysconf() returns -1
  • shared/util: マウントポイントのチェックが出来る関数を実装しました
  • shared/util: さらに snap を扱うロジックを追加しました
  • shared/util: xattr の ACL をコンテナ内の uid/gid にシフトさせるようにしました
  • shared/util: ParseLXDFileHeaders を master に sync しました
  • shared/version: プラットフォーム特有のバージョンを取得するヘルパを追加しました
  • shared/version: ビルド ID でなく、カーネルバージョンのみ含まれるようにしました
  • tests: 読み込み専用のディスクのテストを追加しました
  • tests: 依存パッケージのチェックに新たなパッケージを追加しました
  • tests: パフォーマンスのりグレッションテストを追加しました
  • tests: ストレージのヘルパを追加しました
  • tests: perf.sh に LXD_TMPFS のサポートを追加しました
  • tests: subuid 中に hostid を含めないためのテストを追加しました
  • tests: perf.sh でバッチの開始時刻も計測するようにしました
  • tests: イメージの自動アップデートの制限を 20min に増やしました
  • tests: lxdSuiteTest が終了するごとにモックデーモンでデータベースの状態をクリアするようにしました
  • tests: パブリックなリモートに対する finger を実行しないようにしました
  • tests: 実行中の lvm/ceph コンテナはコピーしないようにしました
  • tests: raw.lxc のテストの問題を修正しました
  • tests: 依存チェックを修正しました
  • tests: image_auto_update を修正しました
  • tests: イメージの Expire テストを修正しました
  • tests: シェルのリターン値のマスキングを修正しました
  • tests: ストレージバックエンドのヘルパを include する関数を追加しました
  • tests: イメージの自動更新に LVM を含めるようにしました
  • tests: apparmor の存在チェックを行うようにしました
  • tests: クリーンアップの関数をリファクタリングしました
  • tests: トリガー用の基本チャンネルハンドラのセットアップを行うようにしました
  • tests: カーネルがサポートしていない場合は apparmor のテストをスキップするようにしました
  • tests: スクリプトを lxc と lxd それぞれに関連したヘルパ関数に分離しました
  • tests: ネットワーク関連のヘルパ関数を分離しました
  • tests: ストレージ関連のヘルパ関数を分離しました
  • tests: テストのセットアップ関連のヘルパ関数を分離しました
  • tests: testify で一部のテストを独立して実行できるようにしました
  • tests: 新しいストレージヘルパにスイッチしました
  • tests: perf.sh 内の "lxd-benchmark spawn" 呼び出しを "lxd-benchmark launch" に更新しました
  • tests: stop を実行する場合は常に "--force" を使うようにしました
  • tests: スピードアップのため、テストの場合はインメモリデータベースを使うようにしました
  • tests: パフォーマンステストには testimage を使うようにしました
  • tests: 正しく busybox がインストールされているかを確認するようにしました
  • tests: イメージの更新は 2 分まで待つようにしました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.19 リリースのお知らせ

17th of October 2017 新機能:

  • LXD のドキュメントが https://lxd.readthedocs.io で読めるようになりました
  • 新しい "resources" API を追加しました。この API により CPU やメモリの情報や、ストレージプールのサイズを取得できます。 クライアントからは、"lxc info --resources"、"lxc storage show NAME --resources" のように使えます。
  • 新たにコンテナの設定項目として limits.kernel.[limit name] が使えるようになりました。この設定で、コンテナに対してカーネルのプロセスに対する制限を調整できます。
  • コマンドクライアントの多数のコマンド、profile、network、image alias に "rename" サブコマンドが加わりました。 トップレベルの "rename" コマンドもそれにマッチするように更新しました。
  • LXD API により、カスタムストレージボリュームのリネームができるようになりました。 クライアントツールでは、"lxc storage volume rename" を使ってリネームできます。
  • カーネルのバージョン、アーキテクチャ、OS 名とリリースを含むように LXD の user-agent を拡張しました。 これにより、LXD イメージサーバは、該当する場合にフィルタリングされたイメージリストを表示できます。
  • 新たに insecureSkipVerify フラグがクライアントの ConnectionArgs 構造体に追加されました。 これにより、あらゆる種類の TLS 検証をバイパスして LXD ホストに接続できます。

バグ修正 :

  • doc: インスタンスタイプについて追加しました
  • doc: squashfs イメージも使えることを追加しました
  • github: SUPPORT.md を追加しました
  • github: Issue 用のテンプレートを更新しました
  • global: TLS Cipher をさらにいくつか追加しました (Issue #3822)
  • lxc/file: push/pull で shared.HostPath を使うようにしました
  • lxc/image: export した際のファイル名に関するリグレッションを修正しました (Issue #3869)
  • lxc/image: import/export で shared.HostPath を使うようにしました
  • lxc/storage: リモートに対する操作を修正しました
  • lxd-benchmark: "launch" と同等の命令として廃止予定の "spawn" を追加しました
  • lxd-benchmark: spawn コマンドの名前を launch に変更しました
  • lxd/apparmor: apparmor の使われない deny を削除しました
  • lxd/daemon: prune 中 (訳注: 期限切れのキャッシュの削除中) はイメージを更新しないようにしました
  • lxd/daemon: config のトリガーの扱いを修正しました
  • lxd/daemon: タイマーの処理を簡素化しました
  • lxd/db: スキーマバージョン 30 と 31 間の更新の不適切な DB スキーマを修正しました (Issue #3878) (Issue #3890)
  • lxd/images: 実際に消去するイメージのリストを取得するようにしました
  • lxd/images: 不適切なエラーメッセージを修正しました
  • lxd/images: キャッシュの期限切れを無効にする設定通りに動作するようにしました
  • lxd/images: RFC3399 形式で UploadedAt を保存するようにしました
  • lxd/import: ディスク上のスナップショットのみをチェックするようにしました
  • lxd/import: マウントポイントとシンボリックリンクを再作成するようにしました
  • lxd/import: (訳注: zfs 上のコンテナの import に関する問題を解決するために) 書きなおしました(Issue #3682)
  • lxd/init: コンテナが btrfs 上にあるときだけ btrfs をネストするようにしました
  • lxd/migration: lvm のステートフルなリストアの問題を修正しました
  • lxd/migration: ステートレスのインクリメンタルなコンテナコピーの問題を修正しました (Issue #3798)
  • lxd/network: dnsmasq のバージョンチェックの扱いを改良しました (Issue #3837)
  • lxd/network: 無条件に制限を更新しないようにしました (Issue #3920)
  • lxd/networks: ネットワークのリネームを修正しました (Issue #3912)
  • lxd/networks: コンテナのリネーム時に dnsmasq (訳注: の lease ファイル) をアップデートするようにしました
  • lxd/patches: UploadAt を RFC3399 形式に変換するようにしました
  • lxd/resources: cpufreq ディレクトリがない場合の問題に対応しました
  • lxd/storage: growFileSystem ヘルパを追加しました (訳注: ファイルシステムのサイズを大きくするための関数)
  • lxd/storage: shrinkFileSystem ヘルパを追加しました
  • lxd/storage: shrinkVolumeFilesystem ヘルパを追加しました
  • lxd/storage: "usedby" 関数が空のスライスを返すようになりました
  • lxd/storage: rsync 中の存在しないファイルの警告を無視するようになりました (Issue #3859)
  • lxd/storage: 型のチェックを API に移しました
  • lxd/storage: ボリュームのファイルシステムが変わった場合は再度イメージをインポートするようにしました
  • lxd/storage: コンテナボリュームのプロパティの設定を変更しました (訳注: 特定のタイプのボリュームの場合のプロパティ設定方法を変更)
  • lxd/storage: ストレージプールのアップデート部分を改良しました (Issue #3834)
  • lxd/storage: ストレージボリュームの更新部分を改良しました
  • lxd/storage: btrfs ベースのボリュームのリサイズをサポートしました
  • lxd/storage/btrfs: コンテナの削除前に存在をチェックするようにしました (Issue #3775)
  • lxd/storage/btrfs: カスタムサブボリュームの削除前に存在をチェックするようにしました(Issue #3775)
  • lxd/storage/btrfs: イメージの削除前に存在をチェックするようにしました (Issue #3775)
  • lxd/storage/btrfs: スナップショットの削除前に存在をチェックするようにしました (Issue #3775)
  • lxd/storage/btrfs: シンボリックリンクへの依存を削除しました
  • lxd/storage/btrfs: btrfs コマンドのバグの回避策を追加しました (Issue #3843)
  • lxd/storage/ceph: アンマウント前にマウントポイントのチェックをするようにしました
  • lxd/storage/ceph: マイグレーションを正しく実装しました
  • lxd/storage/ceph: コンテナの削除前に存在をチェックするようにしました (Issue #3775)
  • lxd/storage/ceph: カスタムサブボリュームの削除前に存在をチェックするようにしました(Issue #3775)
  • lxd/storage/ceph: プールの削除前に存在をチェックするようにしました(Issue #3775)
  • lxd/storage/ceph: スナップショットの削除前に存在をチェックするようにしました (Issue #3775)
  • lxd/storage/ceph: volume.block.filesystem の更新を扱うようにしました
  • lxd/storage/ceph: OSD プールから size プロパティを削除しました
  • lxd/storage/ceph: [grow|shrink]FileSystem ヘルパを使うようにしました
  • lxd/storage/dir: プールが既にマウントされているかどうかチェックするようにしました (Issue #3938)
  • lxd/storage/dir: 確実にプールがマウントされるようにしました (Issue #3938)
  • lxd/storage/lvm: コンテナの削除前に存在をチェックするようにしました (Issue #3775)
  • lxd/storage/lvm: カスタムサブボリュームの削除前に存在をチェックするようにしました(Issue #3775)
  • lxd/storage/lvm: イメージの削除前に存在をチェックするようにしました (Issue #3775)
  • lxd/storage/lvm: プールの削除前に存在をチェックするようにしました(Issue #3775)
  • lxd/storage/lvm: "nouuid" を指定して xfs スナップショットをマウントするようにしました
  • lxd/storage/lvm: 機能に変更のない変更を行いました
  • lxd/storage/lvm: ボリュームのファイルシステムが変わった場合は再度イメージをインポートするようにしました
  • lxd/storage/lvm: バージョンの比較の際にドット入りの文字列を使って比較するようにしました
  • lxd/storage/zfs: カスタムサブボリュームの削除前に存在をチェックするようにしました(Issue #3775)
  • lxd/storage/zfs: プールの削除前に存在をチェックするようにしました(Issue #3775)
  • shared: log パッケージの使用部分を削除しました
  • shared: 当面 testhelpers を shared/osarch に移動します
  • shared/api: ファイル名に一貫性を持たせました
  • shared/api: ストレージ関連のファイルをプールとボリュームに分けました
  • shared/canceler: 並行ダウンロードをキャンセルできるようにしました
  • shared/idmap: 多数の問題を修正しました (Issue #3946)
  • shared/idmap: ACL に関するエラー出力をより冗長にしました
  • shared/logger: log15 API が壊れているのに対する一時的な回避策を取りました
  • shared/util: マウントポイントのチェックが出来る関数を実装しました (Issue #3877)
  • shared/util: さらに snap を扱うロジックを追加しました
  • tests: ステートレスのライブマイグレーションテストを追加しました
  • tests: btrfs のリサイズのテストを追加しました
  • tests: LVM と Ceph ボリューム上の btrfs を使うテストを追加しました
  • tests: raw.lxc のテストの問題を修正しました
  • tests: 依存チェックを修正しました
  • tests: イメージの有効期限切れのテストを修正しました
  • tests: シェルのリターン値のマスキングを修正しました
  • tests: トリガー用の基本チャンネルハンドラのセットアップを行うようにしました
  • tests: マウントポイントとシンボリックリンクの再作成のテストを追加しました
  • tests: インポートテストを更新し拡張しました
  • tests: perf.sh 内の "lxd-benchmark spawn" 呼び出しを "lxd-benchmark launch" に更新しました
  • tests: XFS に対しては最小のブロックデバイスサイズとして 50MB を使うようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.18 リリースのお知らせ

19th of September 2017 新機能:

  • btrfs ファイルシステムが LVM と Ceph ストレージプール上で使用できるようになりました
  • 内部的に使用していた "lxd-benchmark" がファーストクラスのユーティリティとなりました
  • "lxd-benchmark" はパフォーマンスレポートを生成できるようになりました
  • --stateless オプションを使って、直前にコンテナを停止して、実行中のコンテナをバックグラウンドで移動できるようになりました
  • 使用された Ceph プールの予期しないインポートを制限するために、新たに "ceph.osd.force_reuse" がストレージプロパティに追加されました

バグ修正 :

  • client: リクエストに関するログを Debug レベルにしました
  • doc: リリースノートとダウンロードへのリンクを追加しました (Issue #3709)
  • doc: docker の使用手順を調整しました (Issue #3712)
  • lxc/delete: --force の使い方を修正しました
  • lxc/image: プロパティを追加したとき、インポートがクラッシュする不具合を修正しました (Issue #3803)
  • lxc/move: 強制的に削除するようにしました
  • lxd-benchmark: 大幅にコードをリファクタリングしました
  • lxd/apparmor: 新しい stacking 文法をサポートしました
  • lxd/containers: コンテナのマウントポイントもチェックするようになりました
  • lxd/containers: デバイス ID のメジャーとマイナー番号の扱いを修正しました
  • lxd/containers: ストレージの作成に失敗した場合には DB から削除するようにしました (Issue #3782)
  • lxd/daemon: Stateを別パッケージにしてリファクタリングしました
  • lxd/daemon: 設定が変わったときはイメージの自動更新ループをリセットするようにしました
  • lxd/db: 共通のクエリヘルパとして db/query サブパッケージを追加しました
  • lxd/db: データベースのスキーマを管理するための db/schema サブパッケージを追加しました
  • lxd/db: データベース更新から自動的にデータベーススキーマを生成するようになりました
  • lxd/events: イベントハンドラ中の競合を修正しました (Issue #3770)
  • lxd: コメントの Typo を修正しました
  • lxd/images: 圧縮コマンドに与える引数の順序を修正しました
  • lxd/images: 部分的なフィンガープリントを使ったプライベートイメージのコピーの問題を修正しました
  • lxd/images: イメージの有効期限を適切に取得するようにしました
  • lxd/init: コードのリファクタリングを行いました
  • lxd/init: btrfs のサブボリューム作成の問題を修正しました
  • lxd/init: デフォルトのストレージバックエンドの選択を改良しました
  • lxd/init: btrfs に関する質問の順序を変えました
  • lxd/main: ログのパスがない場合のエラーメッセージを修正しました
  • lxd/migration: ライブマイグレーションでの不適切な URL の問題を修正しました (Issue #3715)
  • lxd/networks: IP アドレスの重複を許すようになりました (Issue #3721)
  • lxd/networks: ipt_checksum は不要になりました
  • lxd/networks: IPv6 リンクローカルアドレスを持つブリッジの問題を修正しました (Issue #3727)
  • lxd/networks: デバッグモードでないときは dnsmasq の出力を抑制しました
  • lxd/networks: オプションがサポートされているバージョンの dnsmasq の場合のみ --quiet を付けるようにしました
  • lxd/networks: ディレクトリベースの dhcp-host に変更しました (Issue #3694)
  • lxd/patches: dir プールは bind mount を使うようにしました
  • lxd/patches: パッチをファイルの正しい位置に移動させました
  • lxd/storage: エラーメッセージをマスクしないようにしました
  • lxd/storage: makeFSType 関数を拡張し、重複していた mkfs.* コードを削除しました
  • lxd/storage: ボリュームの作成に失敗した場合は、DB のエントリを削除するようにしました
  • lxd/storage: 設定の変更のみを確認するようにしました
  • lxd/storage/ceph: Ceph クラスタ上のファイルシステムについての注意を追加しました
  • lxd/storage/ceph: サイズ計算の際の除算のエラーを修正しました
  • lxd/storage/ceph: 新しい xfs の UUID を生成するようにしました (Issue #3752)
  • lxd/storage/ceph: リサイズを実装しました (Issue #3760)
  • lxd/storage/ceph: rbd map から返されるパスをサニタイズするようにしました (Issue #3726)
  • lxd/storage/ceph: コンテナコピーの際に ACL を設定するようにしました
  • lxd/storage/ceph: Storage{Start,Stop}() 関数を使うようにしました
  • lxd/storage/ceph: zombie ストレージボリュームを作成するときは UUID を使うようにしました (Issue #3780)
  • lxd/storage/dir: ${LXD_DIR} 外のプールには bind マウントを使うようにしました
  • lxd/storage/dir: 正しい関数を使うようにしました
  • lxd/storage/lvm: thinpool のコピーの際に新たに xfs UUID を生成するようにしました
  • lxd/storage/lvm: 間違ったストレージタイプの場合にエラーを報告するようにしました
  • lxd/storage/lvm: リサイズリクエストは少なくとも 1MB 必要としました
  • lxd/storage/zfs: zfs.use_refquota=true の場合は "referenced" プロパティを使うようにしました
  • shared: バージョンをパース・比較するヘルパを追加しました
  • shared: GroupId 関数で buf が大きくなっていく問題を修正しました (Issue #3711)
  • shared: sysconf() が -1 を返した時はサイズを推測するようにしました
  • shared/api: 新たな golint の警告を修正しました
  • shared/idmap: ホストのidとサブidが交差するのは許可されなくなりました
  • shared/idmap: idmap と acl 関数は別パッケージに分離しました
  • shared/subtest: subtest パッケージを提供するようになりました
  • tests: さらに ceph のテストを追加しました
  • tests: perf.sh に LXD_TMPFS のサポートを追加しました
  • tests: subuid 中に hostid を含めないためのテストを追加しました (Issue #3416)
  • tests: perf.sh でバッチの開始時刻も計測するようにしました
  • tests: 自動更新の制限を 20 分に増やしました
  • tests: Ceph のボリュームリサイズのテストを追加しました
  • tests: コンテナのインポート時の問題を修正しました
  • tests: 実行中の lvm/ceph コンテナはコピーしないようにしました
  • tests: イメージの自動更新に LVM を含めるようにしました
  • tests: Ceph のボリュームを 25MB に制限するようにしました
  • tests: OSD プールの Placement Group 数を小さくしました
  • tests: 機能に関係しない変更を行いました
  • tests: ブロックサイズを 200MB にリサイズするようにしました
  • tests: 停止時には常に "--force" を使うようにしました
  • tests: パフォーマンステストには testimage を使うようにしました
  • tests: イメージの更新は 2 分まで待つようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.17 リリースのお知らせ

22nd of August 2017 新機能:

  • Ceph のユーザを指定できるようになりました ("ceph.user.name" プロパティで指定)
  • 制限を簡単に指定できる「インスタンスタイプ」を実装しました (例: "lxc launch ubuntu:16.04 -t t2.micro")
  • LXD API の低レベルでの問い合わせができる "lxc query" コマンドを追加しました(curl を使うのと同様ですが LXD 独自の処理は実装済みなので curl よりは容易に利用できます)
  • コンテナが uid/gid マッピングを変更したとき、ファイルシステムの ACL を書き換えるようになりました
  • LXD は、デイリーのイメージを更新する際にバイナリの差分が使えるようになりました
  • "lxc image info" コマンドは LXD が自動的にキャッシュしたイメージかどうかを表示するようになりました

バグ修正 :

  • client: イメージをダウンロードする関数内でのコードの重複をなくしました
  • client: 廃止されたクライアントのコードを削除しました
  • client: ConnectPublicLXD のロジックを簡素化しました
  • doc: ストレージのドキュメントに volatile.pool.pristine を追加しました
  • doc: volatile.initial_source キーを追加しました
  • doc: rest-api.md 内の不適切な JSON を修正しました (Issue #3654)
  • doc: 文書中で適切にエスケープするようにしました
  • extra/lxc-to-lxd: デフォルトでドロップされるケーパビリティを無視するようにしました
  • extra/lxc-to-lxd: sysfs と proc のマウントを無視するようになりました
  • extra/lxc-to-lxd: lxc.seccomp を適切に扱うようになりました
  • i18n: weblate から翻訳の更新を行いました
  • lxc: 進捗レポートの競合を修正しました
  • lxc: リモートのプロトコル変換を再導入しました
  • lxc/config: 追加の証明書関数を公開としました (Issue #3606)
  • lxc/image: イメージエイリアスのコピーの問題を修正しました
  • lxc/image: リフレッシュが完全に終わるのを待つようにしました
  • lxc/remote: パブリックなリモートサーバでは証明書が必要でなくなりました (Issue #3627)
  • lxd: lxd/util.go を自身 lxd/util のサブパッケージに移動しました
  • lxd/containers: LXD snap にディスクデバイスを与えられるようになりました (Issue #3660)
  • lxd/containers: さらに LXC 2.1 でのキー名の変更に対応しました: lxc.idmap
  • lxd/containers: Typo の修正 : now -> know
  • lxd/containers: GPU ベンダーが混在する際の GPU のアタッチを修正しました (Issue #3642)
  • lxd/containers: デバイスのソート順を修正しました (Issue #2895)
  • lxd/containers: ホストで isolcpu が設定されている場合の問題を修正しました(isolcpuが設定されている場合の動作をサポート) (Issue #3624)
  • lxd/containers: 再度ステートフルスナップショットのリストアを動作するようにしました
  • lxd/daemon: 初期の lxd/sys サブパッケージと OperationSystem 構造体を追加しました
  • lxd/daemon: d.os.Init の実行をすべてのパスが作られた後に行われるようにしました
  • lxd/daemon: Daemon.ExpireLogs を独立した関数にしました
  • lxd/daemon: Daemon.GetListeners を独立した関数にしました
  • lxd/daemon: Daemon.httpClient を独立した関数にしました
  • lxd/daemon: Daemon.ListenAddresses を独立した関数にしました
  • lxd/daemon: Daemon.PasswordCheck を独立した関数にしました
  • lxd/daemon: Daemon.SetupStorageDriver を独立した関数にしました
  • lxd/daemon: 定義されていない設定キーの使用時にログ出力後、クラッシュしなくなりました
  • lxd/daemon: Daemon.BackingFs を OS 構造体に移動させました
  • lxd/daemon: Daemon.IdmapSet を OS.IdmapSet に移動させました
  • lxd/daemon: Daemon.isRecursionRequest を lxd/util サブパッケージに移動させました
  • lxd/daemon: Daemon.lxcpath を OS.LxcPath に移動させました
  • lxd/daemon: Daemon.MockMode を OS.MockMode に移動させました
  • lxd/daemon: Deamon.CheckTrustState と Deamon.isTrustedClient を lxd/util に移動させました
  • lxd/daemon: filesystemDetect 関数を lxd/util サブパッケージに移動させました
  • lxd/daemon: すべてのモデルエンティティの Daemon を State に置き換えました
  • lxd/daemon: select を使用し、goroutine を少し節約するようにしました
  • lxd/daemon: 可能な場合は Daemon の代わりに sql.DB、sys.OS を使うようにしました
  • lxd/db: db.go 内では Daemon に対する依存を削除しました
  • lxd/db: db*.go ファイルを db/ サブパッケージに移動しました
  • lxd/images: リフレッシュ時に古い "cached" という値も渡すようにしました (Issue #3698)
  • lxd/import: 初期化されていない構造体は使わないようにしました
  • lxd/networks: dnsmasq なしでも LXD が起動するようにしました (Issue #3678)
  • lxd/networks: ip{6}tables がない場合の networkIptablesClear の動作を修正しました (Issue #3688)
  • lxd/networks: ネットワーク名として "dev" が使えるようになりました
  • lxd/networks: dnsmasq.raw を 0644 に設定するようにしました (Issue #3652)
  • lxd/networks: クリーンシャットダウン時にネットワークを停止するようにしました
  • lxd/patches: canmount=noauto パッチの不具合を修正しました (Issue #3594)
  • lxd/patches: ZFS コンテナとイメージの "size" を削除するようにしました (Issue #3679)
  • lxd/storage: pool の UsedBy でカスタムボリュームをカウントするようになりました
  • lxd/storage: btrfs,zfs で "volume.size" が有効になりました
  • lxd/storage: "size" プロパティの修正を行いました
  • lxd/storage: ログ出力時に間違ったドライバー名で出力される問題を修正しました
  • lxd/storage: 動作に影響のない変更
  • lxd/storage/ceph: --cluster を複数指定していたので修正しました
  • lxd/storage/ceph: EINVAL になるまで unmap するようにしました
  • lxd/storage/ceph: sysfs 経由で "/dev/rbd" を使うようにしました
  • lxd/storage/ceph: クローンの際は最小のイメージフィーチャーセットを使うようにしました
  • lxd/storage/dir: ディレクトリが空かどうかチェックするようにしました (Issue #3680)
  • lxd/storage/zfs: 常に既存のデータセットは空である必要があるようにしました (Issue #3657)
  • lxd/storage/zfs: リファクタリングを行いました
  • shared: ホストのパスを変換するラッパーを追加しました
  • shared: GetRemoteCertificate を lxc/remote から (sharedに) 移動しました (Issue #3606)
  • tests: ストレージバックエンドのヘルパを include するための関数を追加しました
  • tests: 関数のリファクタリングとクリーンアップを行いました
  • tests: スクリプトを lxc と lxd それぞれに関連したヘルパ関数に分離しました
  • tests: ネットワーク関連のヘルパ関数を分離しました
  • tests: ストレージ関連のヘルパ関数を分離しました
  • tests: テストのセットアップ関連のヘルパ関数を分離しました
  • tests: $storage_backends 変数を使うようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.16 リリースのお知らせ

25th of July 2017 新機能:

  • LXD のストレージバックエンドとして Ceph RBD が使えるようになりました ("lxd init" でのサポートを含みます)
  • 新たに security.idmap.base キーが追加されました。これは security.idmap.isolated を使う場合に、ホスト上でのベースとなる uid/gid を指定します
  • イメージのダウンロードを中断できるようになりました
  • ファイルの転送でシンボリックリンクを扱えるようになりました
  • "lxc copy" と "lxc move" で進捗表示をするようになりました
  • "lxc copy" と "lxc move" で firewall と NAT を越えるために "relay" モードと "push" モードをサポートするようになりました (--mode オプション)
  • カスタムストレージボリュームのサイズを設定したり変更したりできるようになりました
  • "lxc image import" が展開したイメージを含むディレクトリからの読み込みをサポートするようになりました
  • "vlan" プロパティを "physical" ネットワークインターフェースに設定できるようになりました (以前は "macvlan" に制限されていました)
  • ストレージプールからイメージボリュームを削除できるようになりました。これでイメージストアからイメージを削除することなくストレージプールを削除できるようになりました
  • イメージとしてコンテナを公開する前に、イメージメタデータとテンプレートを API 経由で作成したり変更したりできるようになりました
  • リモートホストで、ステートフルなスナップショットをコンテナとしてリストアできるようになりました

バグ修正:

  • client: ベースとなる http クライアントを指定できるようになりました (Issue #3580)
  • client: エラーハンドリングの共通化を行いました
  • client: 停止しているコンテナのライブマイグレーションを行おうとしないようにしました
  • client: オペレーションハンドラ内のクラッシュを修正しました
  • client: 名前にスペースが含まれたファイルの push/pull の問題を修正しました
  • client: public な LXD のリモートホストを扱う際の問題を修正しました (Issue #3464)
  • client: 操作処理中の競合を修正しました
  • client: マイグレーションをリレーするコードを改良しました
  • client: 使用中の HTTP クライアントを取得できるようになりました (Issue #3580)
  • client: リモートの切断を正しく扱うようにしました
  • client.go: godoc 中で廃止したパッケージの警告を表示するようにしました (Issue #3466)
  • config: スナップショット名中に ":" が含まれる場合の処理を改良しました
  • doc: コンテナ作成時のキャッシュに存在する以前のイメージの使用に関する注意書きを追加しました (Issue #3590)
  • doc: storage_images_delete API 拡張の文書に追加しました (Issue #3539)
  • doc: exec セッション中の control API を文書に追加しました (Issue #3574)
  • doc: lxd のインポートに関する説明を詳細にしました
  • doc: セキュリティに関連する文書を作り直し詳細にしました
  • doc: 実際に動作するサンプルを示すように help を修正しました
  • doc: 空白、カンマ、クオート、括弧を修正しました
  • doc: コンテナ内の環境についての文書を追加しました (Issue #477)
  • doc: /1.0/networks/ の "config"."ipv6.nat" の値にクオートを追加しました
  • doc: 不要なバックスラッシュを削除しました
  • doc: containers.md を更新しました (訳注: LXDで扱えるデバイスタイプに usb と gpu を追加)
  • github: ISSUE_TEMPLATE.md: lxd.log の場所を修正しました
  • global: typo をいくつか修正しました
  • lxc/config: 一度に複数のデバイスを削除できるようにしました
  • lxc: 存在しない設定ファイル用のディレクトリを作成するようにしました
  • lxc: クロスプラットフォームで設定ファイル用のディレクトリを扱えるようにしました (Issue #3573)
  • lxc/exec: Windows でのシグナルハンドラを修正しました (Issue #3496)
  • lxc/file: push -p で作成する中間ディレクトリのモードを指定しないようにしました
  • lxc/image: エクスポートした際のファイル名では、常に長いフィンガープリントを使うようにしました
  • lxc/image: "ixc image copy" が取得元を記録していない問題を修正しました
  • lxc/image: "lxc image list" のフィルタのハンドリングを改良しました (Issue #3555)
  • lxc/image: エラー時の処理が抜けていたのを修正しました
  • lxc/image: コピー時にエイリアスのソースを適切に記録するようにしました (Issue #3586)
  • lxc/image: イメージにエイリアスが設定されている場合、エイリアスを更新するようにしました
  • lxc/launch: ランダムな名前をつけたコンテナの起動に失敗する問題を修正しました
  • lxc/list: --columns と --fast を同時に指定した場合にエラーになっていた問題を修正しました
  • lxc/publish: compression_algorithm を compressionAlgorithm に変更しました (訳注: 変数名の変更)
  • lxc/publish: フィンガープリントの表示の問題を修正しました
  • lxc/utils: 進捗表示での競合の可能性をなくしました
  • lxc/utils: エラー表示でフォーマット指定を行う処理が抜けていた問題を修正しました
  • lxd/container: エラーハンドリングの問題を修正しました
  • lxd/containers: メモリ使用量の表示の際のエラー処理を改良しました (Issue #3482)
  • lxd/containers: コンテナの削除が失敗した場合の根本的なエラーを表示するようにしました
  • lxd/containers: LXC 2.1 の設定キーのサポートを追加しました
  • lxd/images: イメージが見つからない場合にエラー表示を行うようにしました
  • lxd/images: フィンガープリントが与えられた場合のイメージのリフレッシュの問題を修正しました
  • lxd/import: 一時的なキーを保持するようにしました
  • lxd/import: コンテナをインポートする際、シンボリックリンクには依存しないようにしました
  • lxd/init: LVM シンプロビジョニングのツールを検出するようにしました (Issue #3497)
  • lxd/networks: プロセスの PID でない場合でも失敗しないようにしました (訳注: dnsmasqのpidファイルに書かれたPIDがdnsmasqでなく、プロセス以外だった場合にエラーになり、dnsmasqプロセスをkillできないバグを修正)
  • lxd/storage: アタッチしているコンテナすべての idmap をチェックするようにしました (Issue #3548)
  • lxd/storage: ボリュームの ETag の扱いを修正しました
  • lxd/storage: ディレクトリマウント(訳注: bind マウント) の読み込み専用モードの際の問題を修正しました
  • lxd/storage: コンテナとイメージの UsedBy の問題を修正しました
  • lxd/storage: ボリュームの設定ロジックを修正しました
  • lxd/storage: storagePoolVolumeUsedByContainersGet 関数を追加しました
  • lxd/storage: ストレージプールのエントリを削除する実装を各ドライバに移動しました
  • lxd/storage: サイズプロパティを設定を制限しました (訳注: サイズプロパティを設定できないストレージの場合にエラーになるようにした)
  • lxd/storage/lvm: lvm コマンドの実行を RunCommand 関数で実行するようにしました (Issue #3507)
  • lxd/storage/lvm: エラーハンドリングの問題を修正しました
  • lxd/storage/lvm: thinpool でないコンテナ作成時の問題を修正しました (Issue #3543)
  • lxd/storage/lvm: 機能に関係しない変更を行いました
  • lxd/storage/zfs: すべてのヘルパ関数を storage_zfs_utils.go に移動しました (Issue #3471)
  • lxd/storage/zfs: s.zfsPoolVolumeCreate() を削除し、s.zfsPoolVolumeCreate() をすべて zfsPoolVolumeCreate() に変更しました
  • lxd/storage/zfs: マウントできるすべてのデータセットに canmount=noauto を設定するようにしました (Issue #3437)
  • lxd/storage/zfs: s.pool.Name の代わりに s.getOnDiskPoolName() を使うようにしました
  • README: リンク切れを修正しました
  • README: LXD の説明を見直しました
  • shared/cancel: キャンセラーが設定されていない場合にクラッシュする問題を修正しました
  • shared/cancel: 返り値の順序を修正しました (訳注: 関数の返り値を受け取る際、間違った変数で受け取っていた)
  • shared/cancel: request のキャンセルチャンネルを使うようにしました
  • shared: RunCommand のカスタムエラータイプを使うようにしました (issue #3502)
  • shared/util: sysconf() が -1 を返した時、サイズを推測するようにしました (Issue #3581)
  • shared: Websocket プロキシ はすべてをプロキシするようにしました
  • tests: "lxc storage volume set" のテストを追加しました
  • tests: 読み込み専用のディスクのテストを追加しました
  • tests: シンボリックリンクが削除された場合のインポートテストを追加しました
  • tests: push と relay モードのテストを追加しました
  • tests: lxdbr0 なしでもテストができるようにしました
  • tests: stop/restart の際は常に --force を指定するようにしました
  • tests: apparmor の存在チェックを行うようにしました
  • tests: カーネルがサポートしていない場合は apparmor のテストをスキップするようにしました
  • tests: 正しく busybox がインストールされているかを確認するようにしました
  • zfs: ファイルシステムをマウントする際には tryMount を使うようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.15 リリースのお知らせ

27th of June 2017 新機能 :

  • "lxc image list" でカラムのカスタマイズができるようになりました
  • "lxc list" と "lxc image list" の両方のコマンドで、出力フォーマットとして表、json、yaml、csv が選べるようになりました
  • コンテンツをダウンロードしている途中で、いくつかの操作がキャンセル (DELETE) できるようになりました
  • "lxc" コマンドラインツールが、古いクライアントコードから新しいクライアントパッケージに移植されました。 これは移植に必要なコードの最後の部分です。LXD 2.16 ではツリーから古いクライアントパッケージを削除する予定です。
  • CopyContainer と CopyContainerSnapshot 関数がクライアントパッケージに追加されました
  • LXD はカスタムストレージボリュームをコンテナにアタッチした際、動的に再マッピングするようになりました (訳注: id を)

バグ修正 :

  • client: I/O の間操作をブロックする追加の実行オプションを追加しました
  • client: イメージサーバがネットワーク経由待ち受けてない場合、コピーが失敗するようにしました
  • client: イベントハンドラのセットアップで競合が起きる可能性があった問題を修正しました
  • client: 値がある場合だけファイルに関するヘッダを設定するようにしました
  • doc: blkio 制限に関する注意書きを追加しました (Issue #3378)
  • doc: イメージのリフレッシュ API 呼び出しの説明を追加しました
  • doc: markdown のエスケープ忘れを修正しました
  • doc: storage.md のフォーマットの調整を行いました (Issue #3376)
  • lxc/file: 再帰 push の際、ソースパスを正規化するようにしました (訳注: filepath.Clean 使用)
  • lxc/file: Windows で適切にファイルのパーミッションを読み取るようになりました (Issue #3363)
  • lxd/containers: 新しい LXC でサポートされる lxc.net.<n>.* 形式の設定キーをサポートしました
  • lxd/containers: umount 前にホストでディスクデバイスが存在するかどうかチェックするようにしました
  • lxd/containers: exec 中の poll で POLLNVAL を検出するようにしました (Issue #2964)
  • lxd/containers: 起動時に EBUSY を受け取ったら失敗するようにしました (Issue #3412)
  • lxd/containers: 設定キーとして lxc.network.<n>.* 形式を使うようにしました
  • lxd/db: 何箇所か InternalError が使われているところを SmartError に置き換えました
  • lxd/images: 常にフィンガープリントを展開するようになりました (Issue #3424)
  • lxd/images: 複数のキャッシュにヒットした場合は一番最近のものを使うようにしました
  • lxd/images: プロトコルが direct の場合に適切にイメージの情報を初期化するようにしました
  • lxd/images: 自動更新でないキャッシュされたイメージはスキップするようにしました
  • lxd/networks: 常に dnsmasq に --conf-file オプションを与えるようにしました (Issue #3367)
  • lxd/networks: DHCP を使う場合だけ DHCP のファイアウォールルールを生成するようにしました (Issue #3432)
  • lxd/networks: コンテナの消去時に IPv6 のリースを消去するようにしました
  • lxd/networks: サブネットの自動検出のエラーを調整しました
  • lxd/patches: ZFS プールに対する問題のあるアップグレードを修正しました (Issue #3386)
  • lxd/patches: 確実にローカルのデバイスが適切に更新されるようにしました (Issue #3169)
  • lxd/shutdown: 指定された場合だけタイムアウトを待つようにしました (Issue #3434)
  • lxd/storage: プールに対する ETag の計算の問題を修正しました
  • lxd/storage: 正しくドライバ名を DB に保存するようにしました (Issue #3386)
  • lxd/storage/btrfs: タイプを検出する前にデフォルトのマウントフラグを適用するようにしました (Issue #3409)
  • lxd/storage/btrfs: 要求に応じてファイルシステムの quota を有効にするようにしました
  • lxd/storage/dir: freeze が失敗したときでも必要なシンボリックリンクを作成するようにしました
  • lxd/storage/dir: rsync がエラーになった際に unfreeze するようにしました
  • lxd/storage/lvm: thinpool が存在する場合は、空でないボリュームグループが使えるようになりました (Issue #3456)
  • lxd/storage/rsync: rsync の際、sparse ファイルを扱えるようになりました (Issue #3287)
  • lxd/storage/zfs: コンテナのスナップショットコピーの際の問題を修正しました (Issue #3395)
  • lxd/storage/zfs: ダミーのデータセットの作成を改良しました (Issue #3399)
  • Makefile: po ファイル更新前の pot ファイルの更新
  • shared/api: API 拡張は構造体の一番最後に移動しました
  • tests: コピー、マイグレーションのテストを更に追加しました
  • tests: カスタムボリュームのアタッチのテストを追加しました
  • tests: "lxc file push -r ./" のテストを追加しました
  • tests: パブリックなリモートに対する finger を実行しないようにしました
  • tests: バックエンドがランダムの際、LVM のマイグレーションテストを再実行しないようにしました
  • tests: テストの場合はイン・メモリデータベースを使うようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.14 リリースのお知らせ

30th of May 2017 新機能:

  • 新しいクライアントライブラリ
    • CreateContainerFromImage 関数を追加しました
    • イメージのアップロードを実装しました
    • リモート操作を実装しました
  • API の追加
    • コンテナ、ネットワーク、ストレージプール、ストレージボリュームに新たに "description" フィールドを追加しました
    • イメージのリフレッシュが可能になりました (lxc image refresh)
  • コンテナを起動する際、リフレッシュされたダウンロードしたイメージより既存のキャッシュされたイメージが優先されるようになりました
  • "lxd init" に "--preseed" オプションと YAML ファイルを与えることで、あらかじめ準備した設定を与えられるようになりました
  • 新たに btrfs.mount_options でプールのプロパティを設定できるようになりました
  • LVM のボリュームのリサイズを実装しました (ext4 は拡張・縮小、xfs は拡張のみ)

バグ修正:

  • client: 後方互換性のために image_create_aliases を追加しました
  • client: 常に queryStruct 関数にポインタを渡すようにしました
  • client: GetServer ではキャッシュを返さなくなりました
  • client: サーバ証明書のフィンガープリントが設定されていない場合、設定するようにしました
  • client: プライベートイメージの扱いの問題を修正しました
  • client: オペレーションハンドラの競合問題を修正しました
  • client: イメージコピーの際のエラーを改良しました
  • client: プロトコルを追跡するようにしました
  • client: CopyImage をターゲットサーバへ移動しました (訳注: 処理の重複を防ぎ整合性を取れるように関数が属する構造体を変更した)
  • client: 不要な条件を削除しました
  • client: ストレージボリュームではボリュームタイプを必須としました
  • client: フィンガープリントの一部でのチェックをサポートしました
  • client: クライアントでなくサーバの証明書を追跡するようにしました
  • client: CopyImage では RemoteOperation を使うようにしました
  • doc: init に YAML で設定を与える方法を記載しました
  • doc: デバイスタイプ名の typo を修正しました
  • doc: markdown のエスケープを修正しました
  • doc: README.md の Docker に関する説明を更新しました
  • doc/network: macvlan とブリッジに関するセクションを追加しました (Issue #3273)
  • doc/storage: 文法を修正しました
  • doc/storage: ZFS の quota と refquota に関する記述を追加しました (Issue #2959)
  • doc/storage: 表内の行の順序の調整を行いました
  • extra/lxc-to-lxd: mount ファイルがない場合もクラッシュしなくなりました (Issue #3237)
  • global: typo を修正しました
  • global: file の Chmod() を os.Chmod() に置き換えました (Issue #3275)
  • global: containerGetParentAndSnapshotName() を使うようにしました
  • i18n: リリース前の更新を行いました
  • i18n: Weblate から翻訳を更新しました
  • lxc: オブジェクト名 (訳注: ネットワーク名やストレージプール名) が指定されていない場合に意味不明なエラーが出るのを修正しました (Issue #3230)
  • lxc: 操作の進捗トラッキングの処理を実装しました
  • lxc/copy: エラーハンドリングを改良しました (Issue #3243)
  • lxc/copy: コードを簡素化しました
  • lxc/file: Windows でのファイルの push の問題を修正しました
  • lxc/file: Windows での再帰的なファイルの push の問題を修正しました
  • lxc/init: 不要な else ステートメントを削除しました
  • lxc/remote: hex でなく文字列としてフィンガープリントを表示するようにしました (Issue #3293)
  • lxc/storage: YAML のエラーを無視しなくなりました
  • lxd: testify で一部のテストを独立して実行できるようにしました
  • lxd/containers: 一時的なキーである host_name もクリアするようにしました
  • lxd/containers: update 時に一時的なキーをクリアするようにしました (Issue #3231)
  • lxd/containers: macvlan インターフェースを作成する際には親インターフェースで IPv6 を無効化するようにしました
  • lxd/containers: fillNetworkDevice は nic に対してのみ実行するようにしました
  • lxd/containers: 可能な限り networkSysctl を使うようにしました
  • lxd/daemon: /1.0 の際の ETag の扱いを修正しました
  • lxd/daemon: サーバのフィンガープリントを設定するようにしました
  • lxd/db: db のテストに testify のテストを追加しました。既存のテストを作りなおしました
  • lxd/db: lxdSuiteTest が終了するごとにモックデーモンでデータベースの状態をクリアするようにしました
  • lxd/db: db へのパッチで不要である特別なモックモードを実行しないようにしました
  • lxd/db: ストレージプールがない場合に NoSuchObjectError を返すようになりました (Issue #3257)
  • lxd/db: デーモンレベルのロジックから DB レベルの更新ロジックを分離しました
  • lxd/images: アップロード時にイメージが既に存在しているかどうかをチェックするようになりました
  • lxd/images: 複数回アンロックの可能性があったのを修正しました
  • lxd/images: イメージの自動更新ロジックにあったリグレッションを修正しました
  • lxd/images: イメージ取得元の証明書を保存し、ダウンロード時に与えるようにしました
  • lxd/images: autoUpdateImage 関数を分割しました
  • lxd/import: コンテナ名を指定しない場合、エラーになるようにしました
  • lxd/init: --auto を与えた場合のバリデーション機能を別メソッドに分けました
  • lxd/init: 状態を帰るインライン関数を独立したメソッドに移動させました
  • lxd/init: 問題が起こった場合、初期状態にロールバックするようにしました
  • lxd/init: デフォルトポートを適切に設定するようにしました (Issue #3341)
  • lxd/networks: ETag のリグレッションを修正しました
  • lxd/patches: 使われてない変数を削除しました
  • lxd/profiles: Docker プロファイルを削除しました
  • lxd/storage: プールが使用中かどうかを検出するヘルパーを追加しました
  • lxd/storage: lxdResolveMountoptions() を追加しました
  • lxd/storage: MS_LAZYTIME をマウントオプションに追加しました
  • lxd/storage: 各種のファイルパーミッションの定数を定義しました
  • lxd/storage: 無限ループを防ぐように修正しました
  • lxd/storage: 問題のある内部の型を修正しました
  • lxd/storage: マウントヘルパーをストレージユーティリティへ移動させました
  • lxd/storage: カスタムボリュームだけを消去するようにしました
  • lxd/storage: コンテナ構造体を ContainerMount() に与えるようにしました
  • lxd/storage: ストレージプールチェックの順序を変更しました
  • lxd/storage/btrfs: getBtrfsPoolMountOptions() を追加しました
  • lxd/storage/btrfs: 異なるバージョンの LXD 間のマイグレーションが扱えるようになりました (Issue #3323)
  • lxd/storage/btrfs: 使われていない変数を削除しました
  • lxd/storage/btrfs: lxdResolveMountoptions() を使うようにしました
  • lxd/storage/lvm: 既存の Thin pool を再利用できるようにしました (Issue #3351)
  • lxd/storage/lvm: ボリュームグループが使用中かどうかチェックするようにしました
  • lxd/storage/lvm: 空でないボリュームグループは使えないようにしました (Issue #3351)
  • lxd/storage/lvm: 空のときだけ VG を削除するようにしました (Issue #3351)
  • lxd/storage/lvm: 適切にマウントオプションを解決するようになりました (Issue #3284)
  • lxd/storage/lvm: プールの作成を簡素化し、改良しました
  • lxd/storage/zfs: mountpoint=none を与えてイメージデータセットを作成するようにしました (Issue #3359)
  • lxd/storage/zfs: データセット作成後にフォルダのパーミッションを設定するようにしました (Issue #3090)
  • lxd/storage/zfs: zfs の EBUSY バグを回避しようとするようにしました (Issue #3228)
  • Makefile: i18n ターゲットに update-po を追加しました
  • Makefile: static-analysis ターゲットを修正しました
  • shared: "lxc edit" の実行で、テンプレートがエディタの yaml-mode で起動するようにしました
  • shared/cmd: 初期コマンドの I/O ロジックを持つ新しい shared/cmd パッケージを追加しました
  • shared/cmd: 色々な AskXXX メソッドに対して cmd.Context を完全にサポートしました
  • shared/cmd: testify に依存しなくなりました
  • shared/cmd: cmdInit をユニットテスト可能なようにログを生成するようにしました
  • shared/logger: golint がクリーンに実行できるようにしました
  • shared/logger: PrintStack を GetStack に置き換えました
  • shared/logging: LogfmtFormat を export しました
  • shared/logging: golint がクリーンに実行できるようにしました
  • shared/termios: golint がクリーンに実行できるようにしました
  • tests: btrfs.mount_options のテストを追加しました (Issue #3264)
  • tests: LV リサイズのテストを追加しました
  • tests: LVM のマウントオプションのテストを追加しました (Issue #3284)
  • tests: quota のテストを追加しました
  • tests: ランダムにストレージバックエンドを選択できるようにしました
  • tests: busybox がうまくシャットダウンするのに依存しなくなりました
  • tests: 再度 jenkins 特有のチェックを削除しました (訳注: 一度削除した処理がどこかのコミットで戻ってた?)
  • tests: 明確にシェルのタイプを shellcheck に与えるようにしました
  • tests: ストレージのテストでは LXD_BACKEND 環境変数を使うようにしました
  • tests: 確実にストレージボリュームがマウントされるようにしました
  • tests: Jenkins の無効なテストを削除しました
  • tests: テストスイートではインデントにスペースを使うようにしました
  • tests/deps: golint がクリーンに実行できるようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.10 リリースのお知らせ

11th of May 2017 このリリースは LXD 2.0 の 10 回目のバグフィックスリリースです。

LXD 2.0.9 以降の変更は以下の通りです

細かな改良点 :

  • client: 新しいクライアントライブラリをバックポートし、内部コマンドの一部を移植しました
  • lxc: manpage コマンドを追加しました
  • lxc: すべてのコマンドで --version オプションを使えるようになりました
  • lxc: help2man との互換性のために、クライアント内のヘルプをすべて再作成しました
  • lxd: AppArmor 名前空間が特権コンテナでも有効になりました

バグ修正 :

  • build: デバッグログを追加しました
  • client: profile list コマンドを修正しました (訳注: スペースを含む名前の場合に正常に表示されるよう)
  • client: 不要な条件を削除しました
  • doc: loop デバイスの ZFS を拡張するための方法を追記しました
  • doc: btrfs の qgroups のエスケープについての注意書きを追加しました
  • doc: カーネルのリングバッファに対するアクセス制限を行う方法に関する sysctl パラメータの注釈を追加しました
  • doc: ドキュメントを分割し、コンテナの文書は containers.md に移しました
  • doc: ドキュメントを分割し、プロファイルの文書は profiles.md に移しました
  • doc: ドキュメントを分割し、サーバの文書は server.md に移しました
  • doc: デバイスの例で不適切な名前を修正しました
  • doc: 表が崩れていたのを修正しました
  • doc: LXD が ZFS データセットを完全に制御下に置くことに対する注意を追加しました
  • doc: configuration.md に他のドキュメントへのリンクを置きました
  • doc: 新しいクライアント API 文書へのリンクに書き換えました
  • extra/lxc-to-lxd: ディスクまたはネットワーク情報がない場合にクラッシュしないようにしました
  • extra/lxc-to-lxd: --move-rootfs の説明の Typo を修正しました
  • extra/vagrant: 末尾の空白を削除しました
  • global: すべての filepath.Walk 呼び出しでのエラーハンドリングを修正しました
  • global: 多数の Typo を修正しました
  • global: リダイレクトの際には User-Agent と他のヘッダをフォワードするようにしました
  • global: file の Chmod() を os.Chmod() に置き換えました
  • global: containerGetParentAndSnapshotName() 関数を使うようにしました
  • global: すべての場所で RunCommand を使うようになりました
  • lxc: 翻訳用の文字列からスペースを削除しました
  • lxc: バッチモードを改良しました
  • lxc: ヘルプやエラー時のメッセージの出力をより一貫性のあるものにしました
  • lxc: 共通で利用する関数や型を utils.go に移動しました
  • lxc: エラー時に転送状態を適切にクリアするようにしました
  • lxc: より良い man を出力するための改良を行いました
  • lxc/config: 新たに設定を扱うコードを追加しました
  • lxc/config: 常にリモートの images: に対しては "simplestream" を使うようにしました
  • lxc/config: パスの扱いを修正しました
  • lxc/config: SaveConfig 中での DeepCopy 関数の呼び出しのバグを修正しました
  • lxc/copy: エラーの扱いを改良しました
  • lxc/copy: ソース側 (コピー元) のエラーも返すようにしました
  • lxc/copy: 簡素化しました
  • lxc/copy: 非同期に操作を待つようにしました
  • lxc/image: エイリアスの説明 (description) を表示するようにしました
  • lxc/image: 末尾の空白を削除しました
  • lxc/init: 不要な else ステートメントを削除しました
  • lxc/list: リストのフォーマットオプションのヘルプを追加しました
  • lxc/list: json 出力のリグレッションを修正しました
  • lxc/list: データの展開を行う共通の処理をヘルパー関数に移動しました
  • lxc/profile: "profile unset" を適切に実装しました
  • lxc/publish: コンテナが実行状態になるのを待つようになりました
  • lxc/remote: フィンガープリントを hex でなく文字列として表示するようにしました
  • lxc/utils: 操作の進捗トラッキングの処理を実装しました
  • lxd: 不要な場合の logger.Log の使用を止めました
  • lxd/apparmor: ネストでの AppArmor のスタックの扱いを修正しました
  • lxd/containers: containerGetParentAndSnapshotName() 関数を追加しました
  • lxd/containers: initLXD() にソフトリミットを追加しました
  • lxd/containers: メモリの hard limit が設定される際にも soft limit を (hard limit の 90% に) 設定するようにしました
  • lxd/containers: unix-block/unix-char に対する追加のバリデーションを追加しました
  • lxd/containers: root ディスクデバイスを検出する関数を追加しました
  • lxd/containers: (訳注: veth ペアの) ホスト側のインターフェース名を変わらないように指定できるようになりました
  • lxd/containers: uid/gid のエラー出力をわかりやすくしました
  • lxd/containers: デバイスのバリデーションコードをクリーンアップしました
  • lxd/containers: ブリッジに接続される veth のホスト側で IPv6 を無効化しました
  • lxd/containers: スナップショットの削除の失敗を無視しなくなりました
  • lxd/containers: id の範囲を int32 としてパースしなくなりました
  • lxd/containers: 失敗時にマイグレーションの成功を報告しなくなりました
  • lxd/containers: FindProcess を使わずに、exec.Cmd を与えるようにしました
  • lxd/containers: 使用中のスナップショットの最大値をきちんと返すようになりました
  • lxd/containers: 不適切な root デバイスの検出コードを修正しました
  • lxd/containers: ベースイメージのトラッキングの不具合を修正しました
  • lxd/containers: exec で s.conn (訳注: WebSocket接続) への並列の読み書きを修正しました
  • lxd/containers: FileRemove でのエラーハンドリングを修正しました
  • lxd/containers: minor 番号が 255 より大きなデバイスの扱いを修正しました
  • lxd/containers: コピー中のデバイスの上書きに関する問題を修正しました
  • lxd/containers: ソフトリミットのロジックに float64 を使うように修正しました
  • lxd/containers: 要求に応じて idmap を初期化するようにしました
  • lxd/containers: 正常でない websocket のクローズ時に forkexec を kill するようにしました
  • lxd/containers: パスを 1 つのディスクでのみ使用するようにしました
  • lxd/containers: 適切に idmap のキャッシュを無効化するようにしました
  • lxd/containers: 失敗時にメモリ制限を適切に元に戻すようにしました
  • lxd/containers: アーキテクチャを適切に確認するようになりました
  • lxd/containers: USER, HOME, LANG のデフォルト値を設定しました
  • lxd/containers: 既に処理されている条件分岐を削除しました
  • lxd/containers: uid と gid にはすべて int64 を使うようになりました
  • lxd/containers: コンテナの idmap をできるだけ早く確認するようにしました
  • lxd/containers: root のセットアップ後に拡張設定を確認するようにしました
  • lxd/containers: コンテナの作成時に拡張設定を確認するようにしました
  • lxd/daemon: 起動時に idmap の妥当性をチェックするようになりました
  • lxd/daemon: 競合をいくつか修正しました
  • lxd/daemon: devlxd を tmpfs でマウントするようにしました
  • lxd/daemon: s/Default map/Available map/ (訳注: ログ出力の文字列修正)
  • lxd/daemon: サーバの証明書のフィンガープリントを設定するようにしました
  • lxd/daemon: shmounts に tmpfs を使うようにしました
  • lxd/db: 接続ごとに外部キーを有効化するようにしました
  • lxd/db: 更新がない場合を扱えるようにしました
  • lxd/db: 新しい DB からのダウングレードを検出して失敗にするようになりました
  • lxd/db: DB ロックのタイムアウトを 30 秒に上げ、30ms ごとにリトライするようにしました
  • lxd/db: CASCADE に頼るようにしました
  • lxd/db: 余分なクリーンアップコードを削除しました
  • lxd/devlxd: Go 開発版での UnixConn からの fd の展開を修正しました
  • lxd/events: events API 中のログ出力を改良しました
  • lxd/images: イメージが既に存在するかどうかをチェックするようにしました
  • lxd/images: 残っていた不要なデバッグ用の処理を削除しました
  • lxd/images: 部分的なイメージのフィンガープリントのマッチを修正しました
  • lxd/images: imagesDownloading 変数をデーモン構造体の外に出しました
  • lxd/images: エイリアスの説明 (description) を適切に返すようにしました
  • lxd/images: キャッシュにサーバ証明書を記録するようにしました
  • lxd/images: 少しコードをリファクタリングしました
  • lxd/images: イメージの取得元の証明書を保存し、ダウンロード時にそれを使うようにしました
  • lxd/images: autoUpdateImage 関数を分割しました
  • lxd/init: uid/gid が不足している場合にはユーザ名前空間に関する警告メッセージを表示するだけにしました
  • lxd/init: 既にチェックされている条件を再度チェックしている部分の処理を削除しました
  • lxd/main: activateifneeded 内のコメントを修正しました
  • lxd/main_forkexec: os.FindProcess の使用を止めました
  • lxd/main_netcat: ロギングを実装しました
  • lxd/main_netcat: 新しいヘルパーに切り替えました
  • lxd/main_nsexec: cgo: 割り当てたメモリを開放するようにしました
  • lxd/main: デーモンと activeifneeded の実行を root に制限しました
  • lxd/migration: rsync のエラーの扱いを改良しました
  • lxd/migration: CRIUに関連したエラー出力をわかりやすくしました
  • lxd/migration: EAGAIN を適切に扱うようにしました
  • lxd/migration: netcat が EAGAIN を扱うようにしました
  • lxd/migration: rsync のログ出力を少し調整しました
  • lxd/operations: 使われないループを削除しました
  • lxd/profiles: root ディスクデバイスを確認するようにしました
  • lxd/storage/btrfs: 常に再帰的にサブボリュームを扱う関数を使うようにしました
  • lxd/storage/btrfs: マイグレーション後の空のディレクトリを掃除するようにしました
  • lxd/storage/btrfs: 再帰的なサブボリュームの削除を修正しました
  • lxd/storage/btrfs: ネストしたサブボリュームを正しく扱うようにしました
  • lxd/storage: コンテナ用のディレクトリが確実に正しいパーミッションとなるようにしました
  • lxd/storage: マウント用のヘルパをストレージのユーティリティ用のソースファイルに移動させました
  • lxd/storage: containerGetRootDiskDevice 関数を少し最適化しました
  • Makefile: gorilla/context を常に include するようにしました
  • Makefile: "go get" を繰り返し呼ぶのを止めました
  • Makefile: システムの libsqlite3 が利用可能な場合は使うようにしました
  • shared: コーディングスタイルの調整を行いました
  • shared/api: ContainerPut 構造体に stateful フィールドを追加しました
  • shared/api: イメージ作成のソースを適切に定義するようにしました
  • shared/api: 一貫性のある json と yaml のフィールド名を使うようにしました
  • shared/cmd: 初期コマンドの I/O ロジックを持つ新しい shared/cmd パッケージを追加しました
  • shared/cmd: 色々な AskXXX メソッドに対して cmd.Context を完全にサポートしました
  • shared/gnuflag: golint 向けの修正を行いました
  • shared/i18n: 簡素化とgolint がクリーンに実行できるようにしました
  • shared/idmap: DefaultIdmapSet 関数は常に root に対して実行するようになりました
  • shared/idmap: GetOwner 関数を削除しました
  • shared/idmap: いくつか問題を修正しました
  • shared/idmap: カーネルの ID マップをパースする処理を実装しました
  • shared/idmap: Usable() 関数を実装しました (訳注: コンテナに必要な id の範囲の有効性のチェックなど)
  • shared/idmap: shadow の ID ファイルのパースを改良しました
  • shared/idmap: デフォルトを見つけようとするようになりました
  • shared/idmap: idmap の変更中のデバッグコードを削除しました
  • shared/ioprogress: 簡素化とgolint がクリーンに実行できるようにしました
  • shared/logger: フォーマットをきれいに行えるようにしました
  • shared/logger: ログ出力のための新しいパッケージを作成しました
  • shared/logger: golint がクリーンに実行できるようにしました
  • shared/logger: PrintStack を GetStack に置き換えました
  • shared/logging: LogfmtFormat を export しました
  • shared/logging: golint がクリーンに実行できるようにしました
  • shared/simplestreams: 利用可能な場合は常に squashfs を選択するようにしました
  • shared/simplestreams: イメージファイルリストを export するようにしました
  • shared/simplestreams: エラーハンドリングを改良しました
  • shared/simplestreams: イメージのリビルドを適切に扱うようになりました
  • shared/termios: golint がクリーンに実行できるようにしました
  • shared/util: errno を検出する関数を追加しました
  • shared/util: "lxc edit" の実行でテンプレートがエディタの yaml-mode で起動するようにしました
  • shared/util: Windows では chown を実行しなくなりました
  • shared/util: FileCopy が常にオーナーを保持するようにしました
  • shared/util: FileCopy が常にファイルのモードを維持するようになりました
  • shared/version: golint がクリーンに実行できるようにしました
  • tests: db のテストでは testify test suite を使うようにし、既存のテストを書き直しました
  • tests: golint を追加しました
  • tests: lxd init --auto のテストを追加しました
  • tests: ストレージバックエンドをランダムで選択できるようにしました
  • tests: devlxd もアンマウントするようにしました
  • tests: loop デバイスを常にクリーンアップするようにしました
  • tests: zfs の競合を避けました
  • tests: "lxd init" テストで zpool をリークしなくなりました
  • tests: 明確にシェルのタイプを shellcheck に与えるようにしました
  • tests: lxd の auto init のテストを修正しました
  • tests: Typo を修正しました
  • tests: リブートにかかる時間をもう少し長く取るようにしました
  • tests: ストレージのテストでは LXD_BACKEND 環境変数を使うようにしました
  • tests: デッドコードのテストパフォーマンスを改良しました
  • tests: 確実にクライアント証明書が生成されるようにしました
  • tests: 確実にストレージボリュームがマウントされるようにしました
  • tests: テンプレートのテストスイートで適切にクリーンアップされるようにしました
  • tests: テストにかかった時間を記録するようにしました
  • tests: Jenkins の無効なテストを削除しました
  • tests: client/ と lxc/config/ で golint を実行するようにしました
  • tests: "go fmt" の代わりに gofmt を使うように変更しました
  • tests: テストスイートのファイルパーミッションから実行権を削除しました
  • tests: モニタ自身で exit するので kill の失敗を無視するようにしました
  • tests: 行末のスペースを削除しました
  • tests: 新しいクライアントに対する更新を行いました
  • tests: stable ブランチ用に init のテストを更新しました
  • tests: pyflakes と pep8 を別々に呼ぶ代わりに flake8 を使うようにしました
  • tests/deps: golint がクリーンに実行できるようにしました
  • tests/lxd-benchmark: --help と --version の扱いを修正しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.13 リリースのお知らせ

25th of April 2017

このリリースに含まれる変更点

新機能 :

  • lxc/copy: スナップショットを含まない形でコンテナのコピーができるようになりました (--container-only)
  • lxd/storage/zfs: 新たに "zfs.clone_copy" プロパティが追加されました (クローンでなく完全なコピーを作ります)
  • client: 新たに、より良いデザインの クライアントライブラリ がテスト向けに利用可能になりました
  • lxd/containers: UNIXキャラクタ/ブロックデバイスを、コンテナ内の異なった名前にマップできるようになりました ("source" と "path" キーを設定してください)
  • lxd/containers: 特権コンテナでも AppArmor 名前空間が有効になりました
  • lxd/storage/lvm: Thinpool でない LVM ストレージプールを実装しました ("lvm.use_thinpool" を "false" に設定してください)
  • lxc/list: 出力フォーマットに CSV が選べるようになりました
  • lxd/init: 既存の btrfs 環境内でのサブボリュームの作成をサポートしました
  • lxd/storage: rsync の帯域幅を制限するために "rsync.bwlimit" を追加しました
  • lxd/network: VXLAN のマルチキャストインターフェースを上書きできるようになりました ("tunnel.NAME.interface" を設定してください)

バグ修正 :

  • client: 基本的なログ出力を追加しました
  • client: file push のパスの扱いを修正しました (Issue #3153)
  • doc/api-extensions: 適切にマークダウンをエスケープしました
  • doc/configuration: 廃止になった設定オプションを削除しました
  • doc/configuration: ドキュメントを分割し、コンテナの文書は containers.md に移しました
  • doc/configuration: ドキュメントを分割し、ネットワークの文書は networks.md に移しました
  • doc/configuration: ドキュメントを分割し、プロファイルの文書は profiles.md に移しました
  • doc/configuration: ドキュメントを分割し、サーバの文書は server.md に移しました
  • doc/configuration: ドキュメントを分割し、ストレージの文書は storage.md に移しました
  • doc/configuration: ストレージボリュームの設定の説明を修正しました (Issue #3140)
  • doc/configuration: configuration.md に他の分割した文書へのリンクを置きました
  • doc/lxd-ssl-authentication: PKI の CRL に関する注意書きを削除しました (実装されてないので)
  • doc/production-setup: 表が崩れていたのを修正しました
  • doc/README: 新しいクライアント API 文書へのリンクに書き換えました
  • doc/storage: btrfs の qgroups のエスケープについての注意書きを追加しました (Issue #3135)
  • doc/storage: 少しフォーマットを調整しました
  • i18n: weblate から翻訳を更新しました
  • lxc/copy: ソース側 (コピー元) のエラーも返すようにしました (Issue #3086)
  • lxc/copy: 非同期に操作を待つようにしました
  • lxc/list: リストのフォーマットオプションのヘルプを追加しました
  • lxc/manpage: すべてのコマンドが "man lxc" で表示されるようになりました (Issue #3214)
  • lxd/containers: containerGetParentAndSnapshotName() 関数を追加しました (訳注: 親コンテナ名、スナップショット名を取得するヘルパー関数)
  • lxd/containers: メモリの hard limit が設定される際にも soft limit を (hard limit の 90% に) 設定するようにしました
  • lxd/containers: (訳注: veth ペアの) ホスト側のインターフェース名を変わらないように指定できるようになりました (Issue #3143)
  • lxd/containers: minor 番号が 255 より大きなデバイスの扱いを修正しました
  • lxd/containers: securtiy.syscalls.blacklist の typo を修正しました
  • lxd/containers: unix デバイスの削除の問題を修正しました (不正な cgroup.deny 指定)(Issue #3107)
  • lxd/containers: 作成時のストレージのエラーメッセージを改良しました (issue #3110)
  • lxd/containers: 適切に idmap のキャッシュを無効化するようにしました
  • lxd/daemon: PKI 証明書の扱いを改良しました (Issue #3162)
  • lxd/db: 更新がない場合を扱えるようにしました
  • lxd/images: 残っていた不要なデバッグ用の処理を削除しました
  • lxd/init: --storage-backend の説明にすべてのストレージオプションを追加しました
  • lxd/main_activateifneeded: 新しいクライアントコードへのポーティングを行いました
  • lxd/main_callhook: 新しいクライアントコードへのポーティングを行いました
  • lxd/main_daemon: 新しいクライアントコードへのポーティングを行いました
  • lxd/main_forkexec: os.FindProcess の使用を止めました (Issue #3037)
  • lxd/main_import: 存在しないスナップショットパスを扱うようにしました (Issue #3198)
  • lxd/main_import: 新しいクライアントコードへのポーティングを行いました
  • lxd/main_init: 新しいクライアントコードへのポーティングを行いました
  • lxd/main_migratedumpsuccess: 新しいクライアントコードへのポーティングを行いました
  • lxd/main_netcat: ログ出力を実装しました (Issue #2494)
  • lxd/main_netcat: 新しいヘルパーに移行しました
  • lxd/main_ready: 新しいクライアントコードへのポーティングを行いました
  • lxd/main_shutdown: 新しいクライアントコードへのポーティングを行いました
  • lxd/main_waitready: 新しいクライアントコードへのポーティングを行いました
  • lxd/migration: ステートフルなりストアの問題を修正しました
  • lxd/operations: 使われないループを削除しました
  • lxd/profiles: ETag の扱いを修正しました
  • lxd/rsync: netcat が EAGAIN を扱うようにしました (Issue #3168)
  • lxd/storage: プロファイル変更の際、プールの存在をチェックするようにしました (Issue #3137)
  • lxd/storage: 設定のバリデーションを修正し、改良しました
  • lxd/storage/lvm: スナップショットの扱いを改良しました
  • lxd/storage/lvm: {Try}RunCommand() の呼び出しを調整しました (訳注: LVM関係で外部コマンドを実行する部分の調整)
  • shared/api: ContainerPut 構造体に stateful フィールドを追加しました
  • shared/api: イメージ作成のソースを適切に定義するようにしました
  • shared/gnuflag: golint 向けの修正を行いました
  • shared/i18n: 簡素化と golint がクリーンに実行できるようにしました
  • shared/ioprogress: 簡素化と golint がクリーンに実行できるようにしました
  • shared/logger: ログ出力に行番号を追加しました
  • shared/logger: フォーマットをきれいに行えるようにしました
  • shared/logger: ログ出力のための新しいパッケージを作成しました
  • shared/util_linux: errno を検出するための関数を追加しました (Issue #2494)
  • shared/version: golint がクリーンに実行できるようにしました
  • tests/lxd-benchmark: 新しいクライアントコードへのポーティングを行いました
  • tests: 追加の "file push -p" テストを追加しました
  • tests: 追加のインポートテストを追加しました (Issue #3198)
  • tests: 追加のストレージプールテストを追加しました
  • tests: copy と move の際のマイグレーションテストを追加しました (Issue #3006)
  • tests: テストスイートの実行権を落としました (source で読まれるため)
  • tests: 確実にクライアント証明書が生成されるようにしました
  • tests: インポートテストで依存するレコードも確実に削除するようにしました
  • tests: テストにかかった時間を記録するようにしました
  • tests: client/ と lxc/config/ に対して golint を実行するようにしました
  • tests: DB を変更する前にコンテナを停止させるようにしました
  • tests: pyflakes と pep8 を別々に呼ぶ代わりに flake8 を使うようにしました
  • tests: インポートテストを簡略化するために shutdown/respawn ヘルパーを使うようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.12 リリースのお知らせ

20th of March 2017

このリリースに含まれる変更点

新機能 :

  • lxc/exec: ssh スタイルの -t/-T/-n オプションを実装しました
  • lxd/init: すべてのストレージドライバをサポートしました

バグ修正 :

  • doc: カーネルのリングバッファに対するアクセス制限を行う方法に関する sysctl パラメータの注釈を追加しました
  • doc: バックアップ戦略に関する文書を追加しました
  • doc: POST で X-LXD-type が有効であることを追加しました
  • lxc: エラー時に転送状態を適切にクリアするようにしました
  • lxc/copy: copy 時にライブマイグレーションを試みなくなりました (訳注: copy の際にライブマイグレーションかどうかを指定できるようになった)
  • lxc/list: list コマンドのシンプルなフォーマットの例を追加しました
  • lxd/backup: バックアップのハンドリングを改良しました
  • lxd/backup: コンテナのストレージボリュームを記録するようにしました
  • lxd/backup: ストレージプールの構造を記録するようにしました
  • lxd/containers: 使用中のスナップショットの最大値をきちんと返すようになりました
  • lxd/daemon: デフォルトで廃止されたキーを削除できるようになりました
  • lxd/daemon: 壊れたパッチが当たった状態では StoragePoolCheck() を実行しないようにしました
  • lxd/images: キャッシュにサーバ証明書を記録するようにしました
  • lxd/init: 利用可能なストレージバックエンドをわかりやすく出力するようになりました
  • lxd/internal: コンテナのストレージボリュームをチェックするようにしました
  • lxd/patches: update の前に設定が空かどうかチェックするようにしました
  • lxd/patches: 既存のプールの設定が存在していることを確認するようにしました
  • lxd/storage: SetupStorageDriver() を適合させました (訳注: Storage API のアップグレードに伴い強制チェックができるように SetupStorageDriver を変更した)
  • lxd/storage: container_lxc を shared/api にマッチさせるように修正しました
  • lxd/storage: Storage{Start,Stop}() が bool とエラーを返すようになりました
  • lxd/storage/btrfs: isBtrfsFilesystem() を追加しました (訳注: パスが Btrfs かどうかチェックする)
  • lxd/storage/lvm: 強制的に lvmetad のキャッシュを更新するようにしました
  • lxd/storage/zfs: 再利用のイメージのためにボリュームエントリーを作成するようにしました
  • lxd/storage/zfs: カーネルモジュールがロードされていない場合にロードするようにしました
  • lxd/storage/zfs: スナップショットのマウントポイントを削除しないようにしました
  • lxd/storage/zfs: zfs の umount が失敗した場合、lazy umount を試すようにしました
  • scripts/lxc-to-lxd: --move-rootfs の説明の Typo を修正しました
  • shared/api: POST もカバーするように storage.go を更新しました
  • shared/simplestreams: イメージファイルリストを export するようにしました
  • tests: lxd import のテストを追加しました
  • tests: btrfs の検出コードを修正しました
  • tests/lxd-benchmark: --help と --version の扱いを修正しました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.11 リリースのお知らせ

8th of March 2017

このリリースに含まれる変更点

新機能 :

  • 初期の 1 つ以上のエイリアスを設定するためのフィールド "aliases" が POST /1.0/images 内に追加されました
  • ヘルプメッセージとクライアントで manpage を生成するための "lxc manpage" コマンドを改良しました
  • "macvlan" デバイス向けの "vlan" NIC プロパティを追加しました。ホストデバイスの特定の VLAN に接続できます

バグ修正 :

  • doc: loop デバイスの ZFS を拡張するための方法を追記しました
  • doc: ストレージのドキュメントを改良しました (Issue #3013)
  • global: すべての場所で RunCommand を使うようになりました
  • i18n: テンプレートをリフレッシュしました
  • i18n: weblate から翻訳を更新しました
  • i18n: 翻訳テンプレートを更新しました
  • lxc: すべてのコマンドで --version オプションを使えるようになりました
  • lxc: ヘルプやエラー時のメッセージの出力をより一貫性のあるものにしました
  • lxc: より良い man を出力するための改良を行いました
  • lxc/image: エイリアスの説明 (description) を表示するようにしました
  • lxc/profile: "profile unset" を適切に実装しました
  • lxd/containers: FindProcess を使わずに、exec.Cmd を与えるようにしました (Issue #3037)
  • lxd/containers: 失敗時にメモリ制限を適切に元に戻すようにしました (Issue #3017)
  • lxd/images: エイリアスの説明 (description) を適切に返すようにしました
  • lxd/images: 少しコードをリファクタリングしました
  • lxd/migration: ストレージプールが使用できない場合は設定から削除するようにしました (Issue #3036)
  • lxd/migration: rsync のエラーの扱いを改良しました
  • lxd/migration: btrfs の正しいプールプロパティを設定するようにしました (Issue #3036)
  • lxd/migration: zfs の正しいプールプロパティを設定するようにしました (Issue #3036)
  • lxd/migration: rsync のログ出力を少し調整しました
  • lxd/patches: まだマウントされてない場合は tryMount() を呼ぶようにしました (Issue #3026)
  • lxd/patches: lvrename コマンドを lvm のデバイスパスの存在を確認してから実行するようにしました (Issue #3026)
  • lxd/patches: LV が存在しない場合は image データベースのエントリを削除するようにしました (Issue #3026)
  • lxd/patches: 論理ボリュームサイズを検出するようにしました
  • lxd/patches: 誤った btrfs のソースプロパティを修正しました (Issue #3020)
  • lxd/patches: lvm と dir が混じったストレージの upgrade を扱えるようにしました (Issue #3026)
  • lxd/patches: lvm で MNT_DETACH を使うようにしました (Issue #3026)
  • lxd/patches: lvm スナップショットディレクトリには RemoveAll() を使うようにしました (Issue #3026)
  • lxd/storage/btrfs: loop バックエンドのプールを正しく扱うようにしました (Issue #3020)
  • lxd/storage/btrfs: 特別なサブボリュームパスを扱うようにしました (Issue #3020)
  • lxd/storage/dir: 有効なプールのソースパスを制限しました (Issue #3023)
  • lxd/storage/lvm: {pv,vg}scan を呼ぶようにしました
  • lxd/storage/lvm: メソッドから関数へ関数を書き換えました (Issue #3026)
  • lxd/storage: btrfs でない更新元を扱うようにしました (Issue #3024)
  • lxd/storage: スナップショットが確実に正しいプールを持つようにしました (Issue #3036)
  • lxd/storage: btrfs のマイグレーションコードを堅牢にしました (Issue #3024)
  • lxd/storage: prepareLoopDev() がエラーを直接レポートしているのでエラーメッセージを削除しました
  • shared/idmap: 色々問題を修正しました
  • tests: dir と btrfs のテストをさらに追加しました (Issue #3023)
  • tests: ストレージテストの LVM 部分を改良しました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.10.1 リリースのお知らせ

2nd of March 2017

このリリースに含まれる変更点

このリリースは LXD 2.10 に対するバグフィックスのためのリリースです。2.10 リリース後に報告された問題をいくつか修正しています。

バグ修正 :

  • global: すべての filepath.Walk 呼び出しでのエラーハンドリングを修正しました
  • lxd/images: ベースイメージのトラッキングの不具合を修正しました (Issue #2999)
  • lxd/init: root 以外での実行ができるようになりました
  • lxd/storage: set_autoclear_loop_device() を追加しました (訳注: loop デバイスに LO_FLAGS_AUTOCLEAR フラグを設定する関数)
  • lxd/storage/lvm: loop デバイスを使った lvm ストレージプールが使えるようになりました
  • lxd/storage/lvm: defer 呼び出しを修正しました
  • lxd/storage/lvm: ボリューム delete 時に loop device が確実に存在しているようにしました
  • lxd/storage/lvm: ファイルを削除する前に LO_FLAGS_AUTOCLEAR を設定するようにしました
  • lxd/storage/lvm: LV に対してはコンテナ名を元に LVM で使用可能な名前を使うようにしました
  • lxd/storage/zfs: 成功時に元の状態に戻さないようにしました
  • lxd/storage/zfs: 起動時に loop デバイスを使ったストレージプールをインポートするようにしました
  • shared/simplestreams: エラーハンドリングを改良しました
  • shared/util: UUID と BlockDev の探索中にエラーをチェックするようにしました
  • tests: さらに別の LVM プールのボリュームサイズを修正しました
  • tests: リブートにもう少し時間を与えるようにしました
  • tests: LVM の作成は "lxc storage" にのみ依存するようになりました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.10 リリースのお知らせ

28th of February 2017

このリリースに含まれる変更点

新機能 :

  • LVM バックエンドを使う場合、lvm.vg_name と lvm.thinpool_name が変更できるようになりました
  • "lxd init" をコンテナやイメージが存在する場合でも実行できるようになりました

バグ修正 :

  • doc: markdown 内で正しくエスケープするようにしました
  • doc: デバイスの例で不適切な名前を修正しました
  • global: uid と gid にはすべて int64 を使うようになりました
  • i18n: 翻訳とテンプレートを更新しました
  • i18n: Weblate から翻訳を更新しました
  • lxc: 共通で利用する関数や型を utils.go に移動しました
  • lxc/action: バッチモードを改良しました (Issue #2966)
  • lxc/file: シンボリックリンクの転送を検出して失敗とするようにしました (Issue #2970)
  • lxc/publish: コンテナが実行状態になるのを待つようになりました
  • lxd/containers: uid/gid のエラー出力をわかりやすくしました
  • lxd/containers: id の範囲を int32 としてパースしなくなりました
  • lxd/containers: コピー中のデバイスの上書きに関する問題を修正しました (Issue #2872)
  • lxd/containers: uint32 のチェックがきちんと行われるよう修正しました
  • lxd/containers: 要求に応じて idmap を初期化するようにしました
  • lxd/containers: 正常でない websocket のクローズ時に forkexec を kill するようにしました
  • lxd/containers: アーキテクチャを適切に確認するようになりました (Issue #2971)
  • lxd/containers: idmap の変更時のデバッグ出力を削除しました
  • lxd/containers: コンテナのストレージの初期化を簡素化しました
  • lxd/containers: コンテナの idmap をできるだけ早く確認するようにしました
  • lxd/containers: コンテナの作成時に拡張設定を確認するようにしました
  • lxd/daemon: 起動時に idmap の妥当性をチェックするようになりました (Issue #2885)
  • lxd/daemon: 新しい DB からのダウングレードを検出して失敗にするようになりました
  • lxd/daemon: 競合をいくつか修正しました
  • lxd/events: events API 中のログ出力を改良しました
  • lxd/images: 最適化されていないストアを適切に扱うようになりました
  • lxd/init: uid/gid が不足している場合にはユーザ名前空間に関する警告メッセージを表示するだけにしました
  • lxd/patches: ボリュームグループと論理ボリュームを有効化するようにしました
  • lxd/patches: lvm の volume.size をパースしないようにしました
  • lxd/patches: 既存のデータセットからの zfs upgrade の問題を修正しました
  • lxd/storage: 適切なログ出力を追加しました
  • lxd/storage: プロファイルでボリュームが使われているかどうかをチェックするようにしました
  • lxd/storage: loop デバイス用のファイルが使われているかどうかを検出するようにしました
  • lxd/storage: ストレージボリュームのアタッチを改良しました
  • lxd/storage: フラグ引数を設定できるようにしました (訳注: ループバックデバイスを準備する時にioctlに渡すフラグを引数として与えられるようにした)
  • lxd/storage: ストレージドライバのキャッシュ処理を storage.go に移動させました
  • lxd/storage: 使っていない関数の引数を削除しました
  • lxd/storage: 正しいエラーメッセージを返すようにしました
  • lxd/storage: StoragePoolInit() の処理を簡素化しました
  • lxd/storage/btrfs: 非特権の場合、quota が有効にできないことをログに出力するようにしました
  • lxd/storage/lvm: ボリュームグループと論理ボリュームを有効化するようにしました
  • lxd/storage/lvm: ボリュームサイズを設定しないようにしました
  • shared/idmap: GetOwner 関数を削除しました
  • shared/idmap: Usable() 関数を実装しました (訳注: コンテナに必要な id の範囲の有効性のチェックなど)
  • shared/idmap: デフォルトの id マッピングを見つけようとする処理を追加しました
  • tests: ストレージボリュームの attach, detach のテストを追加しました
  • tests: "lxd init" テストで zpool をリークしなくなりました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.9.3 リリースのお知らせ

24th of February 2017

このリリースに含まれる変更点

このリリースは LXD 2.9 に含まれる、ユーザから報告されたマイグレーションの問題を修正するためのリリースです。

バグ修正 :

  • client: 常にリモートの images: に対しては "simplestream" を使うようにしました
  • doc: storage.md にクライアントコマンドの例を追加しました
  • doc: pool のプロパティである lvm.{thinpool,vg}_name の説明を追加しました
  • lxd: root デバイスのバリデーションコードをクリーンアップしました
  • lxd/containers: unix-block/unix-char に対する追加のバリデーションを追加しました
  • lxd/containers: quota を適用する前にストレージの準備が完了しているかどうかをチェックするようにしました
  • lxd/containers: スナップショットの削除の失敗を無視しなくなりました
  • lxd/daemon: s/Default map/Available map/ (訳注: ログ出力の文字列修正)
  • lxd/init: "lxd init" を一般ユーザで実行できるようになりました
  • lxd/main: activateifneeded 内のコメントを修正しました
  • lxd/main: デーモンと activeifneeded の実行を root に制限しました
  • lxd/patches: upgrade 時のプールとボリュームの設定についての問題を修正しました
  • lxd/patches: (訳注: volume.lvm.thinpool_name を) lvm.thinpool_name にリネームしました
  • lxd/storage: (訳注: コンテナのストレージボリュームに対する操作ができるかどうかをチェックする) ContainerStorageReady() 関数を追加しました
  • lxd/storage: (訳注: ストレージボリュームのデフォルト値を設定値に入れる) storageVolumeFillDefault() を (訳注: コンテナの作成時とカスタムストレージボリュームを足した際に) 呼ぶようにしました
  • lxd/storage: 設定のチェックの際には設定を変更しないようにしました
  • lxd/storage: エラー時に DB からイメージの情報を確実に削除するようにしました
  • lxd/storage: イメージにデフォルト値を設定するようにしました
  • lxd/storage: プールとボリュームが正しく設定を継承するように実装しました
  • lxd/storage: 作成時のみデフォルト値を設定するようにしました (訳注: 5 つ上の設定で一部変更されています)
  • lxd/storage: lvm で正しいサイズプロパティのみ設定するようにしました
  • lxd/storage: UsedBy を適切に報告するようにしました
  • lxd/storage: プールとボリュームの設定をチェックが OK かどうかをチェックしてからストレージサイズを受け取ります
  • lxd/storage/btrfs: 常に mount オプションを与えるようにしました
  • lxd/storage/btrfs: 常に再帰的にサブボリュームを扱う関数を使うようにしました
  • lxd/storage/btrfs: 使われていないコードを削除しました
  • lxd/storage/btrfs: upgrade を改良しました
  • lxd/storage/btrfs: loop デバイスの場合のみ size を使うようにしました
  • lxd/storage/btrfs: ネストしたサブボリュームを正しく扱うようにしました
  • lxd/storage/btrfs: "source" が空の場合は loop ファイルを設定するようにしました
  • lxd/storage/dir: デバイスをまたがった upgrade を扱うようにしました
  • lxd/storage/lvm: lvm.thinpool_name と lvm.vg_name を追加しました
  • lxd/storage/lvm: 存在する volume group を再利用できるようになりました
  • lxd/storage/lvm: 常に lvm.thinpool_name を設定するようにしました
  • lxd/storage/lvm: delete 時に 2 度コンテナをアンマウントしなくなりました
  • lxd/storage/lvm: サイズで "i" という文字を扱えるようになりました (訳注: 例えば GB でなく GiB という単位を扱えるようになった)
  • lxd/storage/lvm: "size" でなく正しく "volume.size" をパースするようになりました (訳注: 設定で "volume.size" の値を使うべきところで "size" を使おうとしていたので修正)
  • lxd/storage/lvm: 設定項目から volume.lvm.thinpool_name を削除しました
  • lxd/storage/lvm: StoragePoolVolume{M,Um}ount の間ロックするようにしました
  • lxd/storage/zfs: StoragePoolVolume{M,Um}ount の間ロックするようにしました
  • lxd/storage/zfs: 設定キーを正しく扱うようにしました
  • lxd/storage/zfs: loop デバイスの場合のみ size を使うようにしました
  • lxd/storage/zfs: 何度も出力されるログメッセージを削除しました
  • lxd/storage/zfs: 古い (訳注: LXD で作成した) イメージでは mountpoint=none を設定するようにしました
  • shared/idmap: DefaultIdmapSet 関数は常に root に対して実行するようになりました
  • shared/idmap: カーネルの ID マップをパースする処理を実装しました
  • shared/idmap: shadow の ID ファイルのパースを改良しました
  • shared/simplestreams: イメージのリビルドを適切に扱うようになりました
  • tests: 統一したコマンドを実行するように他のコマンド実行に合わせました
  • tests: LVM 特有のストレージプールテストを追加しました
  • tests: devlxd もアンマウントするようにしました
  • tests: loop デバイスを常にクリーンアップするようにしました
  • tests: LVM では常に 25MB のボリュームを使うようにしました
  • tests: lxd の auto init のテストを修正しました
  • tests: デッドコードのテストパフォーマンスを改良しました
  • tests: カスタムボリュームの作成をテストするようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.9.2 リリースのお知らせ

20th of February 2017

このリリースに含まれる変更点

このリリースは LXD 2.9 に含まれる、ユーザから報告されたマイグレーションの問題を修正するためのリリースです。

バグ修正 :

  • lxd/containers: root ディスクデバイスを検出する関数を追加しました
  • lxd/containers: 適切な root ディスクデバイスを保証するようにしました
  • lxd/containers: デバイスからプールを取得する処理を追加しました
  • lxd/containers: パスを 1 つのディスクでのみ使用するようにしました
  • lxd/init: ストレージ関連の処理で発生したリグレッションを修正しました
  • lxd/init: 細かな修正を行いました
  • lxd/migration:有効なストレージプールを検出するヘルパを呼ぶようにしました
  • lxd/migration: ストレージ API を使ったコンテナの移動を修正しました
  • lxd/patches: 部分的なアップグレードを扱い、プールを修正するようにしました
  • lxd/patches: btrfs のアップグレードを改良しました
  • lxd/patches: dir のアップグレードを改良しました
  • lxd/patches: (訳注: 2 度目のアップグレードの実行では) プールの更新のみを再実行するようにしました
  • lxd/profiles: root ディスクデバイスを確認するようにしました
  • lxd/storage/btrfs: 作成したプール上で quota を有効にしました
  • lxd/storage/dir: データベースからイメージを削除するようにしました
  • Makefile: 常に gorilla/context を include するようにしました
  • Makefile: "go get" を 1 度だけ呼ぶようにしました
  • tests: lxd init --auto のテストを追加しました
  • tests: プロファイル中の root ディスクデバイスに対するテストを追加しました
  • tests: 使用可能なツールに基づいたテストを実行するようにしました
  • tests: タブとスペースの混在を再度修正しました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.9.1 リリースのお知らせ

16th of February 2017

このリリースに含まれる変更点

LXD 2.9 で混入したいくつかのリグレッションを修正するために、このバグフィックスリリースを行いました。

バグ修正 :

  • doc: ディスクデバイスの "pool" プロパティをドキュメントに追加しました
  • lxc/storage: create のヘルプを修正しました
  • lxc/storage: 処理を簡素化しました
  • lxd/daemon: 廃止されたストレージのキーを削除できるようになりました
  • lxd/patches: ストレージをアップグレードするコードにコメントを追加しました
  • lxd/storage: ロギングの改良を行いました
  • lxd/storage: 操作コードのリネームと追加を行いました
  • lxd/storage: ZFS {pool, dataset} が存在すれば使い、そうでなければ作成するようにしました
  • lxd/storage: ロックの際に単一の操作 ID を使うようにしました
  • tests: ZFSで、プールとしてデータセットを使うか、そうでなければ存在するプールを使うようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.9 リリースのお知らせ

15th of February 2017

このリリースに含まれる変更点

新機能 :

  • LXD ストレージ管理 API を導入しました
    • LXD で複数のストレージプールが使えます
    • プールはコンテナやカスタムボリュームを保存するのに使えます
    • 新たな /1.0/storage-pools API を追加しました (rest-api.md をご覧ください)
    • 新たな "lxc storage" コマンドセットを追加しました
    • "lxd init" コマンドは新たにストレージプールの作成をサポートしました
  • "lxc network attach" でネットワークインターフェースの設定ができるようになりました
  • 新たに "lxc file delete" コマンドと API を追加しました
  • API を使ってファイルを上書きするのでなく、追加する機能を追加しました
  • DHCPのリース時間を設定するオプションとして新たに "ipv4.dhcp.expiry" と "ipv6.dhcp.expiry" を追加しました

バグ修正 :

  • doc: PUT と PATCH の違いについて説明を追加しました (Issue 2873)
  • doc: LXD が ZFS データセットを完全に制御下に置くことに対する注意を追加しました
  • doc: 最新の DB スキーマに合致するように database.md を更新しました
  • lxc: 翻訳用の文字列からスペースを削除しました
  • lxc/list: json 出力のリグレッションを修正しました (Issue 2887)
  • lxd/containers: ブリッジに接続される veth のホスト側で IPv6 を無効化しました (issue 2845)
  • lxd/containers: 存在しないパスの解決をブロックしなくなりました
  • lxd/containers: イメージのフィンガープリントを 2 度チェックしないようにしました
  • lxd/containers: exec で s.conn (訳注: WebSocket接続) への並列の読み書きを修正しました (Issue 2862)
  • lxd/containers: FileRemove でのエラーハンドリングを修正しました
  • lxd/containers: USER, HOME, LANG のデフォルト値を設定しました (Issue 2830)
  • lxd/daemon: devlxd を tmpfs でマウントするようにしました (Issue 2877)
  • lxd/daemon: shmounts に tmpfs を使うようにしました
  • lxd/db: 接続ごとに外部キーを有効化するようにしました
  • lxd/db: DB ロックのタイムアウトを 30 秒に上げ、30ms ごとにリトライするようにしました (Issue 2826)
  • lxd/db: CASCADE に頼るようにしました (Issue 2844)
  • lxd/db: 余分なクリーンアップコードを削除しました
  • lxd/devlxd: Go 開発版での UnixConn からの fd の展開を修正しました
  • lxd/images: 部分的なイメージのフィンガープリントのマッチを修正しました
  • lxd/images: imagesDownloading 変数をデーモン構造体の外に出しました
  • lxd/init: ストレージバックエンドのチェックを 2 度行わないようにしました
  • lxd/migration: CRIUに関連したエラー出力をわかりやすくしました
  • lxd/migration: 失敗時にマイグレーションの成功を報告しなくなりました
  • lxd/nsexec: fdopendir() が返す *DIR ストリームをクローズするようにしました
  • lxd/nsexec: 割り当てたメモリを開放するようにしました
  • lxd/storage/btrfs: 再帰的なサブボリュームの削除を修正しました
  • lxd/storage/zfs: デバイスをトラッキングするロジックを簡素化しました
  • Makefile: 使用可能な場合はシステムの libsqlite3 を使うようにしました
  • network: IPv6 を使っていないホストでは ip6tables のクリアをスキップするようにしました (Issue 2842)
  • shared: リダイレクトの際には User-Agent と他のヘッダをフォワードするようにしました (Issue 2805)
  • shared/api: 一貫性のある json と yaml のフィールド名を使うようにしました
  • shared/simplestreams: 利用可能な場合は常に squashfs を選択するようにしました
  • shared/utils: Windows では chown を実行しなくなりました
  • shared/utils: FileCopy が常にオーナーを保持するようにしました
  • shared/utils: FileCopy が常にファイルのモードを維持するようになりました
  • tests: shared/api に対して golint を追加しました
  • tests: zfs の競合を避けました
  • tests: ネットワーク関連のテーブルを空にして確認するテストを追加しました
  • tests: typo を修正しました
  • tests: テンプレートのテストスイートで適切にクリーンアップするようにしました
  • tests: "go fmt" の代わりに gofmt を使うように変更しました
  • tests: モニタは自身で exit するので kill の失敗を無視するようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.9 リリースのお知らせ

26th of January 2017 このリリースは LXD 2.0 の 9 回目のバグフィックスリリースです。

LXD 2.0.8 以降の変更は以下の通りです

細かな改良点:

  • シグナルによって kill された exec セッションの exit コードからシグナル番号がわかるようになりました (訳注: 128+シグナル番号が返る)
  • VLAN デバイスのタイプが API とクライアントで正しくレポートされるようになりました
  • クライアントがイメージの最終利用日を表示するようになりました (lxc image info)
  • 一度に複数のイメージを消去できるようになりました
  • LXD の翻訳は Weblate を使うようになりました

バグ修正:

  • client: Monitor API に終了したシグナルを追加しました
  • client: http のエラーの扱いを改良しました
  • client: 更新のためのメソッドを共通化し、PATCH の追加を行いました
  • doc: cloud-init 経由のネットワーク設定の説明を追加しました
  • doc: README.md に godoc へのリンクを設置しました
  • doc: README.md の CI と Weblate の記述を更新しました
  • extra/lxc-to-lxd: サポートされない (LXCの) 設定項目をさらに追加しました
  • extra/lxc-to-lxd: プロパティはすべて文字列でなければならなくなりました
  • extra/lxc-to-lxd: デフォルトでは rootfs は移動でなく、コピーするようになりました
  • extra/lxc-to-lxd: python3-lxc がインストールされていない場合のエラー表示をわかりやすくしました
  • extra/lxc-to-lxd: (訳注: LXCの設定のうちLXDで使える設定項目のチェックを) ホワイトリストを使うように変更しました
  • global: typo を修正しました
  • global: "gofmt -s" を実行しました
  • lxc: タイムスタンプの扱いを改良しました
  • lxc: ヘルプの出力をより一貫性のあるメッセージにしました
  • lxc: yaml のエラーを正確にチェックするようになりました
  • lxc/init: 例を修正しました
  • lxc/init: 引数のリストを正しく置き換えるようになりました
  • lxc/launch: オプションの解析を行うコードを init.go のメソッドを呼び出すだけにしました (重複しているコードの削除)
  • lxc/list: IPv4 と IPv6 アドレスの出力をソートするようになりました
  • lxc/remote: ヘルプを更新しました
  • lxd-bridge: ip6tables のフィルタルールを追加しました
  • lxd-bridge: DHCP は UDP でのみ通信するようになりました
  • lxd-bridge: IPv4 のファイアウォールをオプショナルにしました (デフォルトは有効です)
  • lxd/containers: コンテナ生成時の基本的なログ出力を追加しました
  • lxd/containers: FileResponse に in-memory のバッファを与えることが可能になりました
  • lxd/containers: コンテナにアタッチする際に (訳注: setuid に加えて) setgroups も実行するようにしました
  • lxd/containers: ネットワークの設定項目を設定する関数の競合状態を避けるようにしました
  • lxd/containers: raw.lxc で設定する項目のうち、lxc.syslog と lxc.ephemeral をブラックリストに追加しました
  • lxd/containers: exec 実行時にクリーンに exit できるように、バックグラウンドタスクを検出するようになりました
  • lxd/containers: 正しい順序でマウントを行うようになりました
  • lxd/containers: シンボリックリンクから xattr を読み取らないようにしました
  • lxd/containers: 存在しないパスの解決をブロックしなくなりました
  • lxd/containers: last_state.power を 2 度記録しないようになりました
  • lxd/containers: Exec() がアタッチされた PID を返すようになり、引数で bool の値をとるようになりました (訳注: bool はコマンドの終了を待つかどうかを与える)
  • lxd/containers: コンテナ状態の記録を修正しました
  • lxd/containers: major/minor デバイス番号を設定するデバイスのホットプラグを修正しました
  • lxd/containers: ファイルの push のエラーハンドリングを修正しました
  • lxd/seccomp: seccomp プロファイルの修正を行いました (訳注: LXC がプロファイルの空行からシステムコール番号を読もうとしていたので修正)
  • lxd/containers: file_manip コマンドのロギングを修正しました
  • lxd/containers: export 中のエラーハンドリングとレポートを改良しました
  • lxd/containers: ディレクトリの置換時に明確にエラーを返すようになりました
  • lxd: http クライアントのためのコードパスを共通化しました
  • lxd: デーモンの TLS の設定で InsecureSkipVerify を設定しないようにしました
  • lxd: デーモンのバージョンをロギングするようにしました
  • lxd/daemon: より厳密なパーミッションでディレクトリを作成するようにしました
  • lxd/daemon: LXD_DIR のグループと全ユーザに対して +x を設定するようにしました
  • lxd: コンテナが起動した時点でのみデーモンが準備できたとマークするようになりました
  • lxd: 値が削除された場合、デーモンの設定項目を適切に確認するようになりました
  • lxd: HTTPS アドレスの更新時にもカスタムの http サーバを使用するようになりました
  • lxd/db: db.go から使われていないコードを削除しました
  • lxd/images: イメージダウンロードでの競合が起こらないようにしました
  • lxd/containers: ネットワーク経由の転送時にスピードをトラッキングするようになりました
  • lxd/main: activateifneeded 関数を自身用のソースファイルに移動させました
  • lxd/main: callhook 関数を自身用のソースファイルに移動させました
  • lxd/main: daemon 用関数を自身用のソースファイルに移動させました
  • lxd/main: forkexec 関数を自身用のソースファイルに移動させました
  • lxd/main: forkgetnet 関数を自身用のソースファイルに移動させました
  • lxd/main: forkmigrate 関数を自身用のソースファイルに移動させました
  • lxd/main: forkstart 関数を自身用のソースファイルに移動させました
  • lxd/main: init 関数を自身用のソースファイルに移動させました
  • lxd/main: migratedumpsuccess 関数を自身用のソースファイルに移動させました
  • lxd/main: netcat 関数を自身用のソースファイルに移動させました
  • lxd/main: ready 関数を自身用のソースファイルに移動させました
  • lxd/main: shutdown 関数を自身用のソースファイルに移動させました
  • lxd/main: waitready 関数を自身用のソースファイルに移動させました
  • lxd/main: nsexec.go を main_nsexec.go にリネームしました
  • lxd/migrate: 生成したスナップショットのリストを使うようにしました
  • lxd/patches: すべてのパッチを create 時に適用済みとマークするようにしました
  • lxd/profiles: 未使用の変数を修正しました
  • lxd/storage: パスを subvolume と仮定しなくなりました
  • lxd/storage: ContainerStart 関数の引数としてコンテナ名とパスを取るように変更しました (訳注: 以前はコンテナ構造体を取得して内部でコンテナ名とパスを取り出していた)
  • lxd/containers: create 時の EEXISTS の検出を書き直しました
  • lxd/storage: zfs: デバイスをトラッキングするロジックを簡略化しました
  • Makefile: "make dist" をより信頼性が向上するように作りなおしました
  • shared: GetPollRevents() 関数を追加しました (訳注: C の poll の wrapper)
  • shared: WebsocketExecMirror() 関数を追加しました (訳注: コンテナ内の PTY に接続して実行するコマンドを扱う)
  • shared: すべての証明書フィンガープリントの生成を共通化しました
  • shared: TransferProgress に Reader でなく ReadCloser を与えるようになりました
  • shared: ExecReaderToChannel() が sync.Once を使うようになりました
  • shared: アーキテクチャを扱う部分をパッケージ化しました
  • shared: IO プログレストラッカー部分をパッケージ化しました
  • shared: simplestreams クライアントをパッケージ化しました
  • shared: バージョンを扱う部分をパッケージ化しました
  • shared: 書き込みのトラッキングを実装しました
  • shared: 証明書のフィンガープリントを計算するヘルパー関数を作成しました
  • shared: Device/Devices type を lxd パッケージに移動しました
  • shared: FromLXCState 関数 (訳注: LXC コンテナの状態を返す関数) を shared の外 (訳注: LXC コンテナの処理部分) へ移動させました
  • shared: REST API を新しいパッケージに移動しました : certificate
  • shared: REST API を新しいパッケージに移動しました : container
  • shared: REST API を新しいパッケージに移動しました : godoc
  • shared: REST API を新しいパッケージに移動しました : image
  • shared: REST API を新しいパッケージに移動しました : network
  • shared: REST API を新しいパッケージに移動しました : operation
  • shared: REST API を新しいパッケージに移動しました : profile
  • shared: REST API を新しいパッケージに移動しました : response
  • shared: REST API を新しいパッケージに移動しました : server
  • shared: REST API を新しいパッケージに移動しました : status
  • shared: WebsocketUpgrader を network.go へ移動させました
  • shared: GroupName 関数を削除し、UserId 関数を追加しました
  • shared: idmapset_test_linux.go を idmapset_linux_test.go にリネームしました
  • shared: ファイル転送のトラッキングの環境依存をなくしました
  • shared/idmap: デバッグコードを削除しました
  • shared/idmapset: intersection テストを修正しました
  • shared/logging: 独自のログフォーマッターを導入しました
  • shared/logging: PrintStack の出力をエラーレベルに変更しました (訳注: runtime.Stack の出力部分を debug から error レベルに変更した)
  • shared/simplestreams: 独自の http ハンドラに依存しなくなりました
  • shared/simplestreams: 引数として UserAgent を与えるようにしました
  • shared/util: Int64InSlice() 関数を追加しました
  • shared/util: GetByteSizeString() 関数が精度を引数として持つようになりました
  • shared/util: byte のパースを改良しました
  • shared/util: ParseByteSizeString() が byte を扱うようになりました
  • tests: db テストのエラーを無視しなくなりました
  • tests: 不適切な変数名を変更しました
  • tests: 新しい開発版で動作するように deadcode を修正しました
  • tests: shellcheck が cd で混乱する問題を修正しました
  • tests: スタンドアロンの remote のテストを追加しました
  • tests: Jenkins に合うようにテスト名を短縮しました
  • tests: テストスイートを起動するコードを簡略化しました
  • tests: lxd のシャットダウンをテストするようにしました
  • tests: lxc reboot の代わりに lxc restart を使うようにしました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.8 リリースのお知らせ

24th of January 2017

このリリースに含まれる変更点

新しい機能 :

  • シグナルによって kill された exec セッションの exit コードからシグナル番号がわかるようになりました (訳注: 128+シグナル番号が返る)
  • 我々の Go クライアント API の改訂の第一段階が終了しました。REST API 定義がすべて含まれる新しい api モジュール となりました
  • LXD が管理するブリッジで使用する dnsmasq が非特権ユーザで動作するようになりました
  • VLAN デバイスのタイプが API とクライアントで正しくレポートされるようになりました
  • クライアントがイメージの最終利用日を表示するようになりました (in lxc image info).
  • LXD の翻訳は Weblate を使うようになりました

バグ修正 :

  • client: Monitor API に終了したシグナルを追加しました
  • client: http のエラーの扱いを改良しました
  • doc: cloud-init 経由のネットワーク設定の説明を追加しました
  • doc: README.md の CI の記述を更新し、Weblate と godoc を追加しました
  • global: Typo を修正しました
  • global: "gofmt -s" を実行しました
  • i18n: フランス語翻訳を改良し、すべて翻訳しました
  • i18n: 日本語翻訳を更新しました
  • i18n: Weblate からの翻訳の更新を行いました
  • lxc: タイムスタンプの扱いを改良しました
  • lxc/file: 再帰的な push でのディレクトリのパーミッションを修正しました (Issue #2759)
  • lxc/init: 引数のリストを正しく置き換えるようになりました
  • lxc/list: 未使用の変数を修正しました
  • lxc/list: 出力の IP アドレスをソートするようになりました
  • lxc/network: ネットワークの変更操作の改良を行いました (Issue #2785)
  • lxc/network: show の UsedBy リストをソートするようになりました
  • lxc: yaml のエラーを正確にチェックするようになりました
  • lxc/remote: ヘルプを更新しました
  • lxd/containers: FileResponse に in-memory のバッファを与えることが可能になりました
  • lxd/containers: シンボリックリンクから xattr を読もうとしなくなりました (Issue #2801)
  • lxd/containers: export 中のエラーハンドリングとレポートを改良しました
  • lxd/containers: シグナルで kill された場合、終了コードでシグナル番号を返すようになりました
  • lxd/db: db.go から使っていないコードを削除しました
  • lxd/devices: 正規表現の失敗を無視しなくなりました
  • lxd/images: イメージダウンロードでの競合が起こらないようにしました (Issue #2739)
  • lxd/init: 入力時の問い合わせの文言の修正を行いました。「CIDRサブネット」→「CIDRアドレス」
  • lxd/migrate: 生成したスナップショットのリストを使うようにしました
  • lxd/network: 静的なアドレス割当を行う場合に leases ファイルをクリーンアップするようにしました (Issue #2781)
  • lxd/networks: 空の dnsmasq の pid ファイルを扱えるようにしました (Issue #2767)
  • lxd/network: ネットワークディレクトリのパーミッションを変更しました (Issue #2804)
  • lxd/patches: すべてのパッチを create 時に適用済みとマークするようにしました
  • lxd/profiles: 未使用の変数を修正しました
  • lxd/storage: パスを subvolume と仮定しなくなりました (Issue #2748)
  • shared: Int64InSlice() を追加しました
  • shared: GetByteSizeString() 関数が精度を引数として持つようになりました
  • shared: GetByteSizeString() と ParseByteSizeString() の byte のパースを改良しました
  • shared: Device/Devices type を lxd パッケージに移動しました
  • shared: ParseByteSizeString() が byte を扱うようになりました
  • shared: GroupName 関数を削除し、UserId 関数を追加しました
  • tests: db テストのエラーを無視しなくなりました
  • tests: 新しい開発版で動作するように deadcode を修正しました
  • tests: shellcheck が cd で混乱する問題を修正しました
  • tests: 可能であれば lxc restart を使うようになりました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.7 リリースのお知らせ

20th of December 2016

このリリースに含まれる変更点

新しい機能 :

  • iptables の FORWARD ルールの生成をコントロールするネットワーク属性 "ipv4.firewall"、"ipv6.firewall" を新たに追加しました
  • 追加の静的ルートをネットワークに設定できるネットワーク属性 "ipv4.routes"、"ipv6.routes" を新たに追加しました
  • 新たに追加した "lxd import" コマンドにより、"containers" ディレクトリだけ存在する(訳注:正確には"containers" ディレクトリにバックアップ情報のファイルだけ存在する)ところからコンテナのインポートができます

バグ修正 :

  • client: 更新のためのメソッドを共通化し、PATCH の追加を行いました
  • extra/lxc-to-lxd: サポートされない (LXCの) 設定項目をさらに追加しました
  • extra/lxc-to-lxd: プロパティはすべて文字列でなければならなくなりました (Issue #2663)
  • extra/lxc-to-lxd: デフォルトでは rootfs は移動でなく、コピーするようになりました
  • extra/lxc-to-lxd: python3-lxc がインストールされていない場合のエラー表示をわかりやすくしました
  • extra/lxc-to-lxd: (訳注: LXCの設定のうちLXDで使える設定項目のチェックを) ホワイトリストを使うように変更しました
  • i18n: フランス語翻訳を更新しました
  • lxc/file: push における off by one エラーを修正しました
  • lxc: ヘルプメッセージを改良しました (Issue #2719)
  • lxc/init: 例を修正しました
  • lxc/launch: オプションの解析を行うコードを init.go のメソッドを呼び出すだけにしました (重複しているコードの削除)
  • lxd: http クライアントのためのコードパスを共通化しました
  • lxd: デーモンの TLS の設定で InsecureSkipVerify を設定しないようにしました
  • lxd: デーモンのバージョンをロギングするようにしました
  • lxd: LXD_DIR のパーミッションをデフォルトで 711 にしました (非特権コンテナに必要です)
  • lxd: コンテナが起動した時点でのみデーモンが準備できたとマークするようになりました
  • lxd: 値が削除された場合、デーモンの設定項目を適切に確認するようになりました (Issue #2698)
  • lxd: サブコマンドのコードをリファクタリングしました
  • lxd: HTTPS アドレスの更新時にもカスタムの http サーバを使用するようになりました
  • lxd/containers: コンテナ生成時の基本的なログ出力を追加しました
  • lxd/containers: ネットワークの設定項目を設定する関数の競合状態を避けるようにしました
  • lxd/containers: lxc.syslog と lxc.ephemeral をブラックリストに追加しました (lxc の設定項目で lxd で使用しない項目に追加)
  • lxd/containers: 残ったテンポラリファイルを消去するようにしました
  • lxd/containers: exec 実行時にクリーンに exit できるように、バックグラウンドタスクを検出するようになりました
  • lxd/containers: 正しい順序でマウントを行うようになりました (Issue #2717)
  • lxd/containers: last_state.power を 2 度記録しないようになりました
  • lxd/containers: コンテナ状態 (訳注: last_state.power) の記録を修正しました (Issue #2686)
  • lxd/containers: major/minor デバイス番号を設定するデバイスのホットプラグを修正しました
  • lxd/containers: ファイルの push のエラーハンドリングを修正しました
  • lxd/containers: file_manip コマンドのロギングを修正しました
  • lxd/containers: FromLXCState 関数 (訳注: LXC コンテナの状態を返す関数) を shared の外 (訳注: LXC コンテナの処理部分) へ移動させました
  • lxd/containers: ディレクトリの置換時に明確にエラーを返すようになりました (Issue #2668)
  • lxd/containers: create 時の EEXISTS の検出を書き直しました
  • lxd/networks: ネットワークごとのリースの更新ができるようになりました
  • lxd/networks: DHCP over TCP は実装されていないのでブロックするようにしました
  • lxd/nsexec: (訳注: setuid に加えて) setgroups も実行するようにしました (Issue #2724)
  • lxd/seccomp: seccomp プロファイルの修正を行いました (訳注: LXC がプロファイルの空行からシステムコール番号を読もうとしていたので修正)
  • lxd/storage: ContainerStart 関数の引数としてコンテナ名とパスを取るように変更しました (訳注: 以前はコンテナ構造体を取得して内部でコンテナ名とパスを取り出していた)
  • Makefile: "make dist" を作りなおしました
  • shared: アーキテクチャを扱う部分をパッケージ化しました
  • shared: IO プログレストラッカー部分をパッケージ化しました
  • shared: simplestreams クライアントをパッケージ化しました
  • shared: バージョンを扱う部分をパッケージ化しました
  • shared: 独自のログフォーマッターを導入しました
  • shared: 証明書のフィンガープリントを計算するヘルパー関数を作成しました
  • shared: PrintStack の出力をエラーレベルに変更しました (訳注: runtime.Stack の出力部分を debug から error レベルに変更した)
  • shared: WebSocketUpgrader 変数を network.go へ移動させました (訳注: operation.go から)
  • shared: idmapset_test_linux.go を idmapset_linux_test.go にリネームしました
  • shared/idmap: デバッグコードを削除しました
  • shared/idmap: intersection テストを修正しました
  • shared/simplestreams: 独自の http ハンドラに依存しなくなりました
  • shared/simplestreams: 引数として UserAgent を与えるようにしました
  • tests: PKI テストを追加しました
  • tests: ホスト上に存在する場合のみ lxdbr0 をアタッチするようにしました
  • tests: テストスイートを起動するコードを簡略化しました
  • tests: lxd のシャットダウンをテストするようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.6.1 リリースのお知らせ

24th of November 2016 このリリースは LXD 2.6 における深刻なリグレッションを修正するための緊急のバグフィックスリリースです。

このリグレッションによって、既存の非特権コンテナが、再起動時に特権コンテナとして起動してしまう可能性がありました。

このリリースに含まれる変更点

バグ修正 :

  • extra/bash: コンテナリストのパースを改善しました
  • lxc/copy: コンテナのコピーがより安定するようになりました (Issue #2640)
  • lxc/init: lxc の警告から unicode の文字を削除しました
  • lxd/containers: 特権コンテナに idmap を割り当てないようにしました
  • lxd/containers: 古いコンテナをパースする際に壊さなくなりました
  • lxd/containers: テンプレートを重複して適用しなくなりました
  • lxd/containers: 並列でのマップのイテレーションと変更を修正しました
  • lxd/containers: 事前に id のマッピングがされていたコンテナの id マッピングの扱いを修正しました (Issue #2644)
  • tests: ファイルテンプレートに対するテストを追加しました (Issue #2642)

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.8 リリースのお知らせ

24th of November 2016 このリリースは、急いでリリースした 2.0.7 で発生したリグレッションを修正するためのバグフィックスリリースです。

LXD 2.0.7 以降の変更は以下の通りです

バグ修正 :

  • パブリックなリモートホストのアドレスをつかまなくなりました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.6.2 リリースのお知らせ 2016 年 11 月 24 日

このリリースは、急いでリリースした 2.6.1 で発生したリグレッションを修正するためのバグフィックスリリースです。

このリリースに含まれる変更点

バグ修正 :

  • パブリックなリモートホストのアドレスをつかまなくなりました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.7 リリースのお知らせ

24th of November 2016 このリリースは LXD 2.0.6 における深刻なリグレッションを修正するための緊急のバグフィックスリリースです。

このリグレッションによって、既存の非特権コンテナが、再起動時に特権コンテナとして起動してしまう可能性がありました。

LXD 2.0.6 以降の変更は以下の通りです

バグ修正:

  • extra/bash: コンテナリストのパースを改善しました
  • lxc/copy: コンテナのコピーがより安定するようになりました (Issue #2640)
  • lxd/containers: 特権コンテナに idmap を割り当てないようにしました
  • lxd/containers: 古いコンテナをパースする際に壊さなくなりました
  • lxd/containers: テンプレートを重複して適用しなくなりました
  • lxd/containers: 並列でのマップのイテレーションと変更を修正しました
  • lxd/containers: 事前に id のマッピングがされていたコンテナの id マッピングの扱いを修正しました (Issue #2644)
  • tests: ファイルテンプレートに対するテストを追加しました (Issue #2642)

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.6.2 リリースのお知らせ

24th of November 2016 このリリースは、急いでリリースした 2.6.1 で発生したリグレッションを修正するためのバグフィックスリリースです。

このリリースに含まれる変更点

バグ修正 :

  • パブリックなリモートホストのアドレスをつかまなくなりました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.6 リリースのお知らせ

23rd of November 2016 このリリースは LXD 2.0 の 6 回目のバグフィックスリリースです。

LXD 2.0.5 以降の変更は以下の通りです

細かな改良点:

  • コンテナごとに特定の uid/gid マップが使える機能のサポートを追加しました (userns-idmap.md を参照してください)

バグ修正:

  • appveyor: appveyor の設定を追加しました (Issue #2537)
  • appveyor: 修正前にファイルのクリーンアップを行いました
  • appveyor: 名前にプラットフォームを示すものを含むアーカイブを作成するようになりました
  • appveyor: テスト名と時間を詳細に表示するようにしました
  • appveyor: ダウンロード用にコンパイル済みのバイナリを出力するようになりました
  • client: 進捗処理を実装し直しました
  • doc: ハッキングガイドを追加しました (debugging.md)
  • doc: README に公式に Windows のサポートについて追加しました
  • doc: README 記載の、必要とされる liblxc のバージョンを上げました
  • doc: rest-api 文書内の API エンドポイントの記載をソートしました
  • doc: README に docker のインストールの詳細を追加しました
  • doc: 動作環境を更新し、LXC 2.0.0 以上が必要であると記載しました
  • doc: rest-api 文書内でメソッドの並びを統一しました
  • extra/bash: クライアントコマンドの bash-completion でパラメータに dash が使えるようになりました
  • extra/bash: クライアントコマンドの _lxd_profiles を修正しました
  • extra/lxc-to-lxd: コンテナが存在しない場合のエラー表示を行うようにしました
  • extra/lxc-to-lxd: 変換元のパスが存在するかどうかチェックするようになりました (disk) (Issue #2572)
  • extra/lxc-to-lxd: 一貫性のあるログ出力をおこなうようにしました
  • extra/lxc-to-lxd: 実行中のコンテナに対する dry-run で失敗しないようになりました
  • extra/lxc-to-lxd: pylxd への依存をなくしました
  • extra/lxc-to-lxd: lxdpath の扱いを修正しました
  • extra/lxc-to-lxd: 出力を整えました
  • extra/lxc-to-lxd: lxc.aa_profile が設定されている場合は設定を移行するようになりました
  • extra/lxc-to-lxd: 結果を表示し、正しい終了コードを返すようになりました
  • lxc/copy: 成功したマーカーとして operation を使わないようにしました
  • lxc/copy: コピーソース側の操作の完了を待つようにしました
  • lxc/delete: help を更新しました
  • lxc/exec: Windows では term を "dumb" に設定するようにしました (Issue #2288)
  • lxc/finger: help を更新しました
  • lxc: Windows と Mac でのテストを修正しました
  • lxc/list: ヘルプメッセージの typo を修正しました
  • lxc/remote: Go 開発版での remote add を修正しました
  • lxc/restore: help を更新しました
  • lxc: yaml の拡張子として .yaml を使うようにしました
  • lxd/certificates: ドキュメント記載の証明書フィールドをすべて export しました
  • lxd/containers: コンテナに /snap のみが存在する場合でも、/snap/bin を PATH に含めるようになりました
  • lxd/containers: OnStart で何らかのエラーが発生したとき、AppArmor 関連のクリーンアップをするようにしました
  • lxd/containers: file の操作時に userns にアタッチするようになりました
  • lxd/containers: mkdir の失敗をよりわかりやすく表示するようにしました
  • lxd/containers: 並列の stop/shutdown を改良しました
  • lxd/containers: OnStop 内でエラーをキャッチして返すようにしました
  • lxd/containers: コンテナの消去を失敗した際のエラー表示をわかりやすくしました
  • lxd/containers: 再起動時に一時的な (ephemeral) コンテナを破棄しないようにしました (Issue #2555)
  • lxd/containers: 一時的なコンテナを二重に消去しなくなりました
  • lxd/containers: 正しくないログを表示しなくなりました
  • lxd/containers: 4.8 以上のカーネルで forkmount が動作するように修正しました
  • lxd/containers: export 時の不適切なメタデータファイル名を修正しました (Issue #2467)
  • lxd/containers: update 時の設定のバリデーションを改良しました
  • lxd/containers: コンテナのエラーハンドリングを改良しました
  • lxd/containers: コンテナのロックメカニズムを改良しました (Issue #2612)
  • lxd/containers: OnStart/OnStop hook のエラーをログに出力するようにしました
  • lxd/containers: コンテナの自動起動の信頼性を向上させました (Issue #2469)
  • lxd/containers: カーネルモジュールがロードされていない場合のみロードするようにしました
  • lxd/containers: CPU 割当 (allowance) を適切にバリデートするようになりました
  • lxd/containers: メモリ制限を適切にバリデートするようになりました (Issue #2483)
  • lxd/containers: go-lxc のエラーを記録するようになりました
  • lxd/containers: OnStop のレガシーなコードを削除しました
  • lxd/containers: (訳注: exec で) 使っていないコードの削除を行いました
  • lxd/containers: publish の際にプロパティを保存するようになりました
  • lxd/containers: LXC (liblxc) のログレベルをデーモンに合わせるようにしました (Issue #2528)
  • lxd/containers: raw.lxc の先頭の空白をスキップするようにしました
  • lxd/containers: ステートフルスタートの際、必要に応じてストレージを起動するようになりました
  • lxd/containers: stop 時のコンテナの freeze にタイムアウトを設定しました
  • lxd/images: ディスクスペース超過による unpack のエラーを検出するようになりました (Issue #2201)
  • lxd/images: 不必要なイメージのコピーを行わないようにしました (Issue #2508)
  • lxd/images: interval (訳注: images.auto_update_interval) が 0 の場合はイメージを更新しないようになりました
  • lxd/images: simplestream キャッシュをディスクに保存するようになりました (リモートイメージをオフラインで使用できるようになりました) (Issue #2487)
  • lxd/init: zfs のカーネルサポートを検出するようになりました
  • lxd/init: コンテナ内では ZFS を無視するようにしました
  • lxd/main: activateifneeded 関数内で DB が存在しない場合は即座に exit するようになりました
  • lxd/migration: ログ収集の競合を修正しました
  • lxd/migration: ファイル作成によるデバッグを削除しました
  • lxd/migration: 適切なタイミングでストレージのマイグレーションを開始するようにしました (Issue #2505)
  • lxd/storage: ZFS の使用イメージを削除する場合の 10 秒のディレイを修正しました (Issue #2617)
  • lxd/storage: directory バックエンドでコピーの間はコンテナをフリーズするようにしました
  • lxd/storage: rsync のコードを簡素化しました
  • shared/certificates: IP アドレスをパースする際はより詳細に行うようにしました
  • shared: http.Transports の KeepAlive を無効にしました
  • shared: Linux 特有なテストを移動させました (Issue #2449)
  • shared/simplestreams: 使っていないプロパティを削除しました
  • tests: LXD_DEBUG の修正を改良しました
  • tests: 残っているコンテナを削除するようになりました
  • tests: filemanip のテストが main.sh に依存しなくなりました
  • tests: LXD_VERBOSE を実装しました
  • tests: LXD_DEBUG を設定した状態で冗長な出力を減らしました
  • travis: クライアントのテストを実行するようにしました
  • travis: Jenkins Go のバージョンにマッチするように更新しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.6 リリースのお知らせ 2016 年 11 月 22 日

このリリースに含まれる変更点

新機能 :

  • コンテナごとに特定の uid/gid マップが使える機能のサポートを追加しました (userns-idmap.md を参照してください)
  • コンテナのマイグレーション中の進捗を送るようになりました (API のみ)
  • コピー元のイメージプロパティをコンテナのプロパティにコピーするようになりました (image. ネームスペースのプロパティ)

バグ修正 :

  • doc: ハッキングガイドを追加しました (debugging.md)
  • doc: configuration.md に gpu 向けで抜けていた pci オプションを追加しました
  • doc: README 記載の、必要とされる liblxc のバージョンを上げました
  • doc: user.network-config を文書化しました
  • doc: 実行の記録には API 拡張が必要である旨追記しました
  • doc: README に docker のインストールの詳細を追加しました
  • lxc/delete: help を更新しました
  • lxc/file: Windows での再帰的なファイルの pull/push を修正しました
  • lxc/finger: help を更新しました
  • lxc/restore: help を更新しました
  • lxc: 進捗処理を実装し直しました
  • lxd/containers: 実際に最後に使われた更新エラーを表示するようになりました
  • lxd/containers: コンテナに /snap のみが存在する場合でも、/snap/bin を PATH に含めるようになりました
  • lxd/containers: file の操作時に userns にアタッチするようになりました
  • lxd/containers: 並列の stop/shutdown を改良しました
  • lxd/containers: コンテナの消去を失敗した際のエラー表示をわかりやすくしました
  • lxd/containers: --debug モードを指定した場合は liblxc のログレベルを正しく debug に設定するようになりました
  • lxd/containers: 一時的なコンテナを二重に消去しなくなりました
  • lxd/containers: コンテナのエラーハンドリングを改良しました
  • lxd/containers: コンテナのロックメカニズムを改良しました (Issue #2612)
  • lxd/containers: publish の際にプロパティを保存するようになりました
  • lxd/containers: raw.lxc の先頭の空白をスキップするようにしました
  • lxd/containers: ステートフルスタートの際、必要に応じてストレージを起動するようになりました
  • lxd/containers: stop 時のコンテナの freeze にタイムアウトを設定しました
  • lxd/containers: ネットワーク経由の転送時にスピードをトラッキングするようになりました
  • lxd/images: interval (訳注: images.auto_update_interval) が 0 の場合はイメージを更新しないようになりました
  • lxd/main: activateifneeded 関数内で DB が存在しない場合は即座に exit するようになりました
  • lxd/networks: checkNetwork 内でのマイナーな typo を修正しました
  • lxd/networks: FAN ブリッジ上で dnsmasq を起動するようになりました
  • lxd/storage: ZFS の使用イメージを削除する場合の 10 秒のディレイを修正しました (Issue #2617)
  • lxd/storage: directory バックエンドでコピーの間はコンテナをフリーズするようにしました
  • scripts/lxc-to-lxd: コンテナが存在しない場合のエラー表示を行うようにしました
  • scripts/lxc-to-lxd: 変換元のパスが存在するかどうかチェックするようになりました (disk) (Issue #2572)
  • scripts/lxc-to-lxd: 一貫性のあるログ出力をおこなうようにしました
  • scripts/lxc-to-lxd: 実行中のコンテナに対する dry-run で失敗しないようになりました
  • scripts/lxc-to-lxd: pylxd への依存をなくしました
  • scripts/lxc-to-lxd: lxdpath の扱いを修正しました
  • scripts/lxc-to-lxd: 出力を整えました
  • scripts/lxc-to-lxd: lxc.aa_profile が設定されている場合は設定を移行するようになりました
  • scripts/lxc-to-lxd: 結果を表示し、正しい終了コードを返すようになりました
  • shared/idmapset: Intersects 関数内の typo を修正しました
  • shared/simplestreams: 使っていないプロパティを削除しました
  • tests: 残っているコンテナを削除するようになりました
  • tests: filemanip のテストが main.sh に依存しなくなりました
  • tests: 冗長な出力を減らす LXD_VERBOSE を実装しました
  • tests: LXD_DEBUG を設定した状態で冗長な出力を減らしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.6 リリースのお知らせ

22nd of November 2016

このリリースに含まれる変更点

新機能 :

  • コンテナごとに特定の uid/gid マップが使える機能のサポートを追加しました (userns-idmap.md を参照してください)
  • コンテナのマイグレーション中の進捗を送るようになりました (API のみ)
  • コピー元のイメージプロパティをコンテナのプロパティにコピーするようになりました (image. ネームスペースのプロパティ)

バグ修正 :

  • doc: ハッキングガイドを追加しました (debugging.md)
  • doc: configuration.md に gpu 向けで抜けていた pci オプションを追加しました
  • doc: README 記載の、必要とされる liblxc のバージョンを上げました
  • doc: user.network-config を文書化しました
  • doc: 実行の記録には API 拡張が必要である旨追記しました
  • doc: README に docker のインストールの詳細を追加しました
  • lxc/delete: help を更新しました
  • lxc/file: Windows での再帰的なファイルの pull/push を修正しました
  • lxc/finger: help を更新しました
  • lxc/restore: help を更新しました
  • lxc: 進捗処理を実装し直しました
  • lxd/containers: 実際に最後に使われた更新エラーを表示するようになりました
  • lxd/containers: コンテナに /snap のみが存在する場合でも、/snap/bin を PATH に含めるようになりました
  • lxd/containers: file の操作時に userns にアタッチするようになりました
  • lxd/containers: 並列の stop/shutdown を改良しました
  • lxd/containers: コンテナの消去を失敗した際のエラー表示をわかりやすくしました
  • lxd/containers: --debug モードを指定した場合は liblxc のログレベルを正しく debug に設定するようになりました
  • lxd/containers: 一時的なコンテナを二重に消去しなくなりました
  • lxd/containers: コンテナのエラーハンドリングを改良しました
  • lxd/containers: コンテナのロックメカニズムを改良しました (Issue #2612)
  • lxd/containers: publish の際にプロパティを保存するようになりました
  • lxd/containers: raw.lxc の先頭の空白をスキップするようにしました
  • lxd/containers: ステートフルスタートの際、必要に応じてストレージを起動するようになりました
  • lxd/containers: stop 時のコンテナの freeze にタイムアウトを設定しました
  • lxd/containers: ネットワーク経由の転送時にスピードをトラッキングするようになりました
  • lxd/images: interval (訳注: images.auto_update_interval) が 0 の場合はイメージを更新しないようになりました
  • lxd/main: activateifneeded 関数内で DB が存在しない場合は即座に exit するようになりました
  • lxd/networks: checkNetwork 内でのマイナーな typo を修正しました
  • lxd/networks: FAN ブリッジ上で dnsmasq を起動するようになりました
  • lxd/storage: ZFS の使用イメージを削除する場合の 10 秒のディレイを修正しました (Issue #2617)
  • lxd/storage: directory バックエンドでコピーの間はコンテナをフリーズするようにしました
  • scripts/lxc-to-lxd: コンテナが存在しない場合のエラー表示を行うようにしました
  • scripts/lxc-to-lxd: 変換元のパスが存在するかどうかチェックするようになりました (disk) (Issue #2572)
  • scripts/lxc-to-lxd: 一貫性のあるログ出力をおこなうようにしました
  • scripts/lxc-to-lxd: 実行中のコンテナに対する dry-run で失敗しないようになりました
  • scripts/lxc-to-lxd: pylxd への依存をなくしました
  • scripts/lxc-to-lxd: lxdpath の扱いを修正しました
  • scripts/lxc-to-lxd: 出力を整えました
  • scripts/lxc-to-lxd: lxc.aa_profile が設定されている場合は設定を移行するようになりました
  • scripts/lxc-to-lxd: 結果を表示し、正しい終了コードを返すようになりました
  • shared/idmapset: Intersects 関数内の typo を修正しました
  • shared/simplestreams: 使っていないプロパティを削除しました
  • tests: 残っているコンテナを削除するようになりました
  • tests: filemanip のテストが main.sh に依存しなくなりました
  • tests: 冗長な出力を減らす LXD_VERBOSE を実装しました
  • tests: LXD_DEBUG を設定した状態で冗長な出力を減らしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.5 リリースのお知らせ

25th of October 2016

このリリースに含まれる変更点

新機能 :

  • lxc/remote: 新しいリモートホストを FQDN/IP で追加できるようになりました (name なしで)
  • lxd/containers: API に exec の出力を記録する機能を実装しました
  • lxd/images: simplestream キャッシュをディスクに保存するようになりました (リモートイメージをオフラインで使用できるようになりました)
  • lxd/certificates: 証明書の PUT/PATCH のサポートを追加しました
  • lxd/containers: exec セッション中のシグナルのフォワーディングをサポートしました
  • lxd/containers: GPU のホットプラグのサポートを追加しました (デバイスタイプ "gpu")

バグ修正 :

  • appveyor: appveyor の設定を追加しました (Issue #2537)
  • client: http.Transports の KeepAlive を無効にしました
  • client: Windows と Mac 上でのクライアントテストを修正しました
  • doc: README に公式に Windows のサポートについて追加しました
  • doc: rest-api 文書内の API エンドポイントの記載をソートしました
  • doc: rest-api 文書内でメソッドの並びを統一しました
  • doc: すべてスペースを使うようにしました
  • doc: 動作環境を更新し、LXC 2.0.0 以上が必要であると記載しました
  • doc: github の markdown レンダラ向けに調整を行いました
  • examples: yaml の拡張子として .yaml を使うようにしました
  • extra: クライアントコマンドの bash-completion に network コマンドを追加しました
  • extra: クライアントコマンドの bash-completion でパラメータに dash が使えるようになりました
  • extra: クライアントコマンドの _lxd_profiles を修正しました
  • lxc/copy: 成功したマーカーとして operation を使わないようにしました
  • lxc/copy: コピーソース側の操作の完了を待つようにしました
  • lxc/exec: Windows では term を "dumb" に設定するようにしました (Issue #2288)
  • lxc/file: ヘルプのtypoを修正しました
  • lxc/file: mkdir -p / を修正しました
  • lxc/file: ファイルをサーバに送る前にパスを正規化するようにしました (Issue #2557)
  • lxc/init: -n に対する nictype の値の typo を修正しました
  • lxc/list: lxc list のヘルプ内の typo を修正しました
  • lxc/push: typo を修正しました (Issue #2501)
  • lxc/remote: Go 開発版での remote add を修正しました
  • lxd/certificates: ドキュメント記載の証明書フィールドをすべて export しました
  • lxd/containers: mkdir の失敗をよりわかりやすく表示するようにしました
  • lxd/containers: OnStop 内でエラーをキャッチして返すようにしました
  • lxd/containers: OnStart で何らかのエラーが発生したとき、AppArmor 関連のクリーンアップをするようにしました
  • lxd/containers: 再起動時に一時的な (ephemeral) コンテナを破棄しないようにしました (Issue #2555)
  • lxd/containers: 正しくないログを表示しなくなりました
  • lxd/containers: exec: 使っていないコードの削除を行いました
  • lxd/containers: 4.8 以上のカーネルで forkmount が動作するように修正しました
  • lxd/containers: seccomp のエラーメッセージを修正しました
  • lxd/containers: update 時の設定のバリデーションを改良しました
  • lxd/containers: OnStart/OnStop hook のエラーをログに出力するようにしました
  • lxd/containers: コンテナの自動起動の信頼性を向上させました (Issue #2469)
  • lxd/containers: カーネルモジュールがロードされていない場合のみロードするようにしました
  • lxd/containers: CPU 割当 (allowance) を適切にバリデートするようになりました
  • lxd/containers: メモリ制限を適切にバリデートするようになりました (Issue #2483)
  • lxd/containers: go-lxc のエラーを記録するようになりました
  • lxd/containers: OnStop のレガシーなコードを削除しました
  • lxd/containers: 正しいデバイスのタイプをログに記録するようになりました
  • lxd/containers: LXC (liblxc) のログレベルをデーモンに合わせるようにしました (Issue #2528)
  • lxd/containers: USB のベンダー ID が必須で、プロダクト ID は必須でなくなるように修正しました
  • lxd/devices: netlink 情報をもう少し厳しく扱うようにしました
  • lxd/devices: usb に対してnetlink の DEVNAME エントリを使うようにしました
  • lxd/images: ディスクスペース超過による unpack のエラーを検出するようになりました (Issue #2201)
  • lxd/images: 不必要なイメージのコピーを行わないようにしました (Issue #2508)
  • lxd/images: export 時の不適切なメタデータファイル名を修正しました (Issue #2467)
  • lxd/init: zfs のカーネルサポートを検出するようになりました
  • lxd/init: コンテナ内では ZFS を無視するようにしました
  • lxd/migration: ログ収集の競合を修正しました
  • lxd/migration: ファイル作成によるデバッグを削除しました
  • lxd/migration: 適切なタイミングでストレージのマイグレーションを開始するようにしました (Issue #2505)
  • lxd/networks: 常に dnsmasq との通信を許可するようにしました (Issue #2506)
  • lxd/networks: IPv6 で --enable-ra を常に与えられるようになりました (Issue #2481)
  • lxd/networks: DHCP チェックサムを埋めるようにしました
  • lxd/networks: IPv6 の DHCP ロジックを修正しました
  • shared/cert: IP アドレスのパースを詳細に行うようにしました
  • shared: Linux 特有なテストを移動させました (Issue #2449)
  • travis: クライアントのテストを実行するようにしました
  • travis: Jenkins Go のバージョンにマッチするように更新しました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.5 リリースのお知らせ

5th of October 2016 このリリースは LXD 2.0 の 5 回目のバグフィックスリリースです。

LXD 2.0.4 以降の変更は以下の通りです

このリリースに含まれるマイグレーションに関する修正のいくつかは、新しい go-lxc に依存していることに注意してください。 マニュアルでビルドする場合、go-lxc のコピーも更新する必要があるでしょう。 ディストリビューション用のビルドの場合、go-lxc のパッケージバージョンを新しい物に更新する必要があるでしょう。

細かな改良点 :

  • AppArmor の名前空間とスタッキングをサポートしました
  • LXD デーモンのロギングをよりわかりやすく、より一般的に役立つように作りなおしました (Issue #1928)
  • "lxc info CONTAINER" はコンテナが存在するリモートホスト名を表示するようになりました
  • クライアントのエラーメッセージにコンテナが存在するリモートホスト名を表示するようになりました
  • コンテナに /snap/bin が存在する場合は PATH に含めるようになりました

バグ修正 :

  • doc: txqueuelen の調整について追加しました
  • doc: btrfs のネストの際は user_subvol_rm_allowed オプション付きでマウントする必要があることを追記しました (Issue #2338)
  • doc: environment.md の表のスタイルを修正しました (Issue: #2410)
  • doc: production-setup.md の typo の修正
  • doc: production-setup.md 内の行末のスペースを削除しました
  • doc: スペースのみの行を削除しました
  • extras: (訳注: bash completion で) start、stop、exec コマンドに対してコンテナ状態のチェックを行うようになりました
  • extras: LXC から LXD へのコンテナ変換の修正を行いました
  • fuidshift: パスのシンボリックリンクを展開するようになりました
  • lxc: 使っていない httpAddr プロパティを削除しました
  • lxc/exec: lxc exec のヘルプに -- args を追加しました
  • lxc/exec: 環境変数を取得する際、go 1.5 で導入された os.LookupEnv を使用するようになりました
  • lxc: config.go のヘルプ内の例の出力位置を調整しました
  • lxc/help: エラーを stdout に出力するようにしました (Issue #2301)
  • lxd/apparmor: 非特権の場合は制限を緩くしました
  • lxd-bridge: dnsmasq の実行が失敗したときにエラーになるようになりました
  • lxd-bridge: lxd-bridge-proxy でクラッシュする問題を修正しました
  • lxd: 名前の衝突を一貫性を持って処理するようになりました
  • lxd/container: あらゆる設定キーを削除できるようになりました
  • lxd/container_lxc: xattrs を扱うようになりました
  • lxd/container: コンフリクトの際、petname の生成をリトライするようになりました
  • lxd/container: pause されたコンテナに対して force オプションを指定せずに "restart" を実行するとエラーを返すようになりました (Issue #2311)
  • lxd/container: コンテナ操作のロック処理を見直しました (Issue #2297)
  • lxd/daemon: ソケットのアクティベーションを自身で行うようにしました (Issue #2333)
  • lxd/db: int64 の扱いを修正しました
  • lxd/db: スキーマのアップデート時にデータベースのバックアップを取得するようになりました (Issue #2299)
  • lxd/db: DB スキーマの更新処理を作りなおしました
  • lxd/image: lzma alone ファイルフォーマットのサポートに関する修正を行いました (Issue #2360)
  • lxd/image: メモリの少ないシステムでの squashfs の調整を行いました (Issue #2382)
  • lxd/init: LXD がバインドするアドレスのデフォルトを all (::) に変更しました
  • lxd/init: バリデーション関数を一貫性があるように変更しました
  • lxd/init: "zfs" が使用できない場合のデフォルトを "dir" にしました (Issue #2340)
  • lxd/init: IP アドレスとして "all" を与えてもエラーにならないようにしました
  • lxd/init: 新しい zfs pool で圧縮を有効にしました
  • lxd/init: ZFS プールのデフォルト値として表示していた値を修正しました (Issue #2339)
  • lxd/init: パーティションのサイズ決めをよりインテリジェントなロジックを使うようにしました
  • lxd/migration: 異なる CoW ベースのバックエンドタイプをまたいだコピーを実質的にサポートしました (Issue #2359)
  • lxd/migration: c/r エラーに警告も表示するようになりました
  • lxd/migration: ghost limit を増やしました
  • lxd/migration: 利用できない場合は ActionScript を使わないようにしました
  • lxd/migration: スナップショットの設定を保存するようになりました
  • lxd/migration: リストアが失敗した場合にダンプしたコンテナを再開させるようになりました
  • lxd/migration: liblxc の新しい preserves_inodes 機能を使うようになりました
  • lxd/network: ボンディングの検出を行うようになりました
  • lxd/network: openvswitch の検出を行うようになりました
  • lxd/network: networkIsInUse を修正しました
  • lxd/network: isOnBridge の移動とリネームを行いました
  • lxd/profile: プロファイル名が存在する場合のエラーをわかりやすくしました
  • lxd/profile: プロファイルの消去の際、適切にクリーンアップするようにしました (Issue #2347)
  • lxd/storage: コンテナのコピーの際、すべてをコピーするようになりました (Issue #2371)
  • lxd/storage: ZFS プールに関する追加のチェックと設定をするようになりました
  • Makefile: テストの依存関係を再帰的に include しないようにしました
  • README: AppVeyor のバッジを追加しました (Windows のテスト)
  • shared: Windows 用に GetOwner スタブを追加しました (fixes #2438)
  • shared: 適切な拡張鍵用途 (Extended Key Usage) を持つクライアント証明書を生成するようになりました
  • shared: TestReaderToChannel の転送を小さくしました
  • shared: 新しいラッパー関数 RunCommand を追加しました
  • tests: 偶然新しい依存関係が生じないようにチェックするテストを追加しました
  • tests: GetAllXattr() のテストを追加しました
  • tests: apparmor のバージョンチェックを修正しました
  • tests: より新しい shellcheck 対応の修正を行いました
  • tests: UTC タイムゾーンを強制するようにしました
  • tests: 現在の LXD の残り物だけをチェックするようにしました
  • tests: xattr がサポートされていない場合はテストをスキップするようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.4.1 リリースのお知らせ

5th of October 2016 このリリースの主な目的は、リリースのミスによりバージョン表示が LXD "2.3" となっていたのを、実際に "2.4.1" と表示させるためのリリースを行うことです。

リリースにはいくつかのバグフィックスも含んでいます。

このリリースに含まれる変更点

バグ修正 :

  • shared: logging のインポートを削除しました
  • tests: 偶然新しい依存関係が生じないようにチェックするテストを追加しました
  • extras: lxc クライアントの bash-completion に shell コマンドを追加しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.4 リリースのお知らせ

4th of October 2016

このリリースに含まれる変更点

新機能 :

  • (クライアントでリレーを行う) push ベースのマイグレーション用の API サポートを追加しました
  • プロファイルに新たに used_by プロパティを追加しました (networks と同様)
  • "lxc profile list" を表を表示するように更新しました
  • "lxd init" での NAT の設定をサポートしました

バグ修正 :

  • lxd/init: プロファイルに実際に新しいネットワークを追加するようになりました
  • lxd/init: Typo を修正しました
  • lxd/migration: 利用できない場合は ActionScript を使わないようにしました
  • lxd/network: ネットワークがない設定ができるようになりました
  • lxd/network: より適切に部分的に IPv6 を無効化するようになりました
  • lxd/network: 自動 NAT 設定を修正しました
  • lxd/network: IPv6 フォワーディングロジックを修正しました
  • lxd/network: sysctl に関するレアな競合状態を修正しました
  • lxd/network: lintian が発見した Typo を修正しました
  • lxd/zfs: ZFS プールに関する追加のチェックと設定をするようになりました
  • doc: AppVeyor のバッジを追加しました (Windows のテスト)
  • Makefile: テストの依存関係を再帰的に include しないようにしました
  • shared: Windows 用に GetOwner スタブを追加しました
  • shared: 適切な拡張鍵用途 (Extended Key Usage) を持つクライアント証明書を生成するようになりました
  • test: apparmor バージョンチェックを修正しました
  • test: shellcheck の警告を修正しました
  • test: UTC タイムゾーンを強制するようにしました
  • test: コンテナのクリーンアップをより信頼性高くしました

### 試用環境 この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

### ダウンロード このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.3 リリースのお知らせ

27th of September 2016 LXD 2.3 には私たちがここ数ヶ月取り組んでいたいくつかの主要な機能が含まれています。

その主要なものとは、API エンドポイント、設定オプション、コマンドの完全な新しいセットです。 これにより、IPv4 と IPv6 の接続性、Ubuntu FAN のサポート、GRE または VXLAN を使ったクロスホストのトンネル、様々な DNS モード、DHCP 設定、MAC フィルタリングを含む LXD 経由のブリッジの作成や設定ができるようになりました。

私たちがとてもわくわくしている他の機能は、AppArmor の名前空間とスタッキングのサポートです。 これにより、コンテナが AppArmor のプロファイルをロードし、さらに負荷を制限することができます。

このリリースに含まれる変更点

新機能 :

  • 新しいネットワーク管理 API を導入しました
    • /1.0/networks への POST (rest-api.md 参照)
    • /1.0/networks への PUT (rest-api.md 参照)
    • /1.0/networks への PATCH (rest-api.md 参照)
    • /1.0/networks への DELETE (rest-api.md 参照)
    • "lxc network" コマンド
    • "lxd init" でのネットワーク設定
    • デフォルトのプラファイルはネットワーク設定を含まなくなりました
    • 古い lxd-bridge のコードが削除されました
    • configuration.md に設定の詳細が追加されました
  • AppArmor 名前空間とプロファイルのスタッキングのサポート
    • サポートされているカーネルでは、コンテナは AppArmor を使います
  • デーモンの設定オプションとして新たに storage.lvm_mount_options を導入しました
  • ログメッセージのプライオリティの見直しと、ログメッセージのためのコンテキストを追加しました
  • "lxc info" の出力にリモートホスト名を出力するようになりました
  • クライアントのエラーメッセージにリモートホスト名を出力するようになりました

バグ修正 :

  • apparmor: 非特権の場合は制限を緩くしました
  • apparmor: コンテナごとに AppArmor 名前空間を作るようにしました
  • doc: PATCH の追加に伴い rest-api を修正しました
  • doc: environment.md の表のスタイルを修正しました
  • extras: bash completion で start、stop、exec コマンドに対してコンテナ状態のチェックを行うようになりました
  • extras: LXC から LXD へのコンテナ変換の修正を行いました
  • extras: bash completion を現在のオプションに更新しました
  • lxc: 使っていない httpAddr プロパティを削除しました
  • lxc/exec: lxc exec のヘルプに -- args を追加しました
  • lxc/file: ターゲットディレクトリへの再帰的な pull を行うようになりました
  • lxd/db: テストの実行時にデータベースのバックアップを取らないようにしました
  • lxd/db: int64 の扱いを修正しました
  • lxd/images: メモリの少ないシステムでの squashfs の調整を行いました
  • lxd/init: バリデーション関数を一貫性があるように変更しました
  • lxd/init: 新しい zfs pool で圧縮を有効にしました
  • lxd/log: ログ関数用のフォーマットのラッパーを追加しました
  • lxd/log: ログ関数用のラッパーを追加しました
  • lxd/log: 新しいラッパーに移行しました
  • lxd/migration: 異なる CoW ベースのバックエンドタイプをまたいだコピーを実質的にサポートしました
  • lxd/migration: c/r エラーに警告も表示するようになりました
  • lxd/migration: コピーの間、スナップショットの設定を保存するようになりました
  • lxd/network: ボンディングの検出を行うようになりました
  • lxd/network: openvswitch を検出するようになりました
  • lxd/network: networkIsInUse を修正しました
  • lxd/network: isOnBridge の移動とリネームを行いました
  • shared: 型チェック関数をエクスポートするようになりました
  • shared: fuidshift: パスのシンボリックリンクを展開するようになりました
  • shared: 新しいラッパー関数 RunCommand を追加しました
  • snappy: /snap/bin が存在する場合は PATH に追加するようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.2 リリースのお知らせ

14th of September 2016

このリリースに含まれる変更点

新機能:

  • client: "manpage" コマンドを追加しました (Issue #2280)
  • client: エイリアスとして "rename" を追加しました (Issue #2320)
  • client/file: 再帰的なファイルの push/pull ができるようになりました (-r) (Issue #1218)
  • client/file: 再帰的なディレクトリ作成をサポートしました (-p) (Issue #2290)
  • client/info: CPU 使用率が表示されるようになりました (Issue #1867)
  • client/publish: 圧縮アルゴリズムをオーバーライドできるようになりました (Issue #2296)
  • daemon: スキーマのアップデート時にデータベースのバックアップを取得するようになりました (Issue #2299)
  • daemon/container: CPU の使用率情報が提供できるようになりました (Issue #1867)
  • daemon/container: 再帰的なファイルの push/pull ができるようになりました (Issue #1218)
  • daemon/image: 圧縮アルゴリズムをオーバーライドできるようになりました (Issue #2296)
  • daemon/init: キャッシュされた古いイメージを自動的に更新するかどうかを尋ねるようになりました (Issue #2167)
  • daemon/storage: 新たに storage.zfs_use_refquota オプションを追加しました (Issue #2354)

バグ修正:

  • client/exec: 環境変数を取得する際、go 1.5 で導入された os.LookupEnv を使用するようになりました
  • client/help: lxc help を標準出力に出力するように変更しました (Issue #2301)
  • daemon: 名前の衝突を一貫性を持って処理するようになりました
  • daemon/container: あらゆる設定キーを削除できるようになりました
  • daemon/container: USB デバイス番号の major/minor が入れ替わっていたので修正しました
  • daemon/container: publish の際、xattrs を扱うようになりました
  • daemon/container: コンフリクトの際、petname の生成をリトライするようになりました
  • daemon/container: pause されたコンテナに対して force オプションを指定せずに "restart" を実行するとエラーを返すようになりました (Issue #2311)
  • daemon/container: コンテナ操作のロック処理を見直しました (Issue #2297)
  • daemon/container: デバイスの接続が切断されたあと、USB バスディレクトリの削除を試みるようになりました (Issue #2306)
  • daemon/container: USB ホットプラグに関する様々なバグ修正を行いました (Issue #2312)
  • daemon/dir: コンテナのコピーの際、すべてをコピーするようになりました (Issue #2371)
  • daemon: ソケットのアクティベーションを自身で行うようにしました (Issue #2333)
  • daemon/image: lzma alone ファイルフォーマットのサポートに関する修正を行いました (Issue #2360)
  • daemon/init: LXD がバインドするアドレスのデフォルトを all (::) に変更しました
  • daemon/init: "zfs" が使用できない場合のデフォルトを "dir" にしました (Issue #2340)
  • daemon/init: ZFS プールのデフォルト値として表示していた値を修正しました (Issue #2339)
  • daemon/init: パーティションのサイズ決めをよりインテリジェントなロジックを使うようにしました
  • daemon/profile: プロファイル名が存在する場合のエラーをわかりやすくしました
  • daemon/profile: プロファイルの消去の際、適切にクリーンアップするようにしました (Issue #2347)
  • doc: txqueuelen の調整について追加しました
  • doc: btrfs のネストの際は user_subvol_rm_allowed オプション付きでマウントする必要があることを追記しました (Issue #2338)
  • doc: production-setup.md の typo の修正
  • doc: api_extensions を api-extensions にリネームしました
  • i18n: 各国語の翻訳リソースファイルを更新し、日本語の翻訳を更新しました
  • lxd-bridge: lxd-bridge-proxy でクラッシュする問題を修正しました
  • tests: エイリアスのテスト内の競合を修正しました
  • tests: TestReaderToChannel の転送を小さくしました
  • tests: 現在の LXD の残り物だけをチェックするようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.1 リリースのおしらせ

16th of August 2016 LXD 2.1 は、LXD 2.0 LTS リリース以降初めての、機能の変更と強化が図られたリリースです。

このリリースは LTS ではありませんので、複数年にわたるサポートやバグフィックスといった恩恵を受けないことに注意してください。

本番用途では、LXD 2.0 LTS を使い続けることをおすすめします。

このリリースに含まれる変更点

新機能:

  • client: デフォルトで lxc shell というエイリアスを追加しました
  • client: lxc に Unix 風のエイリアスを追加しました (lxc {cp,ls,mv,rm}, lxc image {cp,ls,rm}, lxc image alias {ls,rm}, lxc remote {ls,mv,rm}, lxc config device {ls,rm})
  • client: 要求に応じてクライアント証明書を生成するようになりました
  • client/copy: 追加のプロファイルと設定を指定できるようになりました
  • client/copy: 同一ホスト上で指定しない場合、ランダムな名前をつけるようになりました
  • client/image: --format オプションを追加し、json 出力が指定できるようになりました
  • client/image: 一度に複数のイメージを消去できるようになりました
  • client/list: カラムのキーを設定できるようになりました (e.g. lxc list -c ns,security.privileged:privileged)
  • client/profile: lxc profile applylxc profile assign になりました
  • client/profile: 新しいサブコマンド lxc profile addlxc profile remove が追加されました
  • client/version: デフォルトでは version コマンドを表示しなくなりました
  • daemon: グローバルな設定項目 core.https_allowed_credentials を追加しました
  • daemon: すべての PUT 呼び出しで ETag をサポートしました
  • daemon: PKI 認証を実装しました (doc/lxd-ssl-authentication.md を参照してください)
  • daemon: PUT をサポートしているエンドポイントすべてに対して PATCH メソッドを実装しました
  • daemon/container: : コンテナを強制シャットダウンするためのタイムアウトを設定する設定値を追加しました (boot.host_shutdown_timeout)
  • daemon/container: seccomp に関する設定項目をいくつか追加しました (security.syscalls.{blacklist,blacklist_default,blacklist_compat,whitelist} and raw.seccomp)
  • daemon/container: デバイスタイプとして "usb" のサポートを追加しました (doc/configuration.md 参照してください)
  • daemon/container: コンテナの最終使用日を記録するようになりました (lxc infolxc list で表示されます)
  • daemon/zfs: 設定中に強制的にスナップショットを削除できるようになりました (storage.zfs_remove_snapshots) (訳注: コンテナのリストア中の強制削除のことだと思います)

Bugfixes:

  • LXD 2.0.1, 2.0.2, 2.0.3, 2.0.4 で行ったバグフィックスすべてが含まれます
  • tests: より新しい shellcheck 対応の修正
  • lxd-bridge: dnsmasq の実行が失敗したときにエラーになるようになりました
  • c/r: 新しい ->migrate API にスイッチしました
  • c/r: liblxc の新しい preserves_inodes 機能を使うようになりました
  • c/r: ghost limit を増やしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.4 リリースのお知らせ

15th of August 2016 このリリースは LXD 2.0 の 4 回目のバグフィックスリリースです。

LXD 2.0.3 以降の変更は以下の通りです

細かな改良点 :

  • /dev/net/tun はデフォルトのデバイスになりました (常に存在します)
  • lxd-bridge: dnsmasq は IPv6 の名前解決をするように設定しました
  • lxd-bridge: iptables ルールにコメントをつけるようにしました (Issue #2125)
  • "lxd init" lxd init は適切なデフォルト値が設定されるようになりました (Issue #1933)
  • 新規インストール時に "images:" のリモートは simplestreamsを使うようになりました
  • "lxc image export" は常にイメージのフィンガープリントをファイル名に使うようにしました
  • "lxc image import" の URL インポートで進捗を表示するようにしました

バグ修正

  • apparmor: 機能の検知の追加と少しの整理
  • apparmor: LXC の apparmor profile に依存しなくなりました (Issue #1942)
  • apparmor: 主な2つのルール名を変更しました (Issue #1942)
  • apparmor: apparmor profile をさらにモジュール化しました (Issue #1942)
  • client: http client を go routines と共有しないようにしました (Issue #2186)
  • client: 存在しないデバイスを削除しようとしたときにエラーになるようにしました (Issue #2277)
  • client: "lxc info" で表示される API 情報を修正しました
  • client: 綴りを修正しました permisson -> permission (Issue #2211)
  • client: client.websocket を public API にしました
  • client: --version オプションを見えるようにしました (Issue #2171)
  • client: WebsocketRecvStream の引数の制約を緩和しました
  • client: actionCmds で名前付き引数を使うようにしました
  • client/finger: fingerコマンドから使用していないフィールドを削除しました (Issue #2170)
  • client/image: URLからのイメージインポートを修正しました (Issue #2272)
  • client/list: 並行な読み書きを修正しました (Issue #2183)
  • client/list: "lxc list" のエラーハンドリングと競合を修正しました (Issue #1753)
  • client/pause: lxc pause にいくつかのヘルプを追加しました
  • client/profile: ヘルプメッセージに "lxc profile unset" を追加しました (Issue #2227)
  • daemon/container: 実際に containers list error を処理するようにしました
  • daemon/container: よくある問題のために整合性チェックをするようにしました (Issue #2190)
  • daemon/container: デバイスの処理をアルファベット順にしました (Issue #2233)
  • daemon/container: デバイスの整合性チェックのエラーを改善しました
  • daemon/container: デバイスタイプが存在しないか間違っている場合の処理を改良しました (Issue #2210)
  • daemon/container: limits.*.priorityの値のドキュメントとバリデーションを追加しました (Issue #2231)
  • daemon/container: イメージのエクスポート対象の挙動のドキュメントとバグ修正をしました (Issue #2205)
  • daemon/container: コンテナが停止している時にコンテナの unfreeze を行わないようにしました (Issue #2164)
  • daemon/container: 初期化エラーのメッセージのフラグ名を修正しました
  • daemon/container: limits.disk.priority が 0 に設定された場合を修正しました (Issue #2230)
  • daemon/container: openvswitch での nic のホットプラグを修正しました (Issue #2106)
  • daemon/container: ネストしたコンテナの unix-char/unix-block を修正しました (Issue #2279)
  • daemon/container: 無効な物理デバイスのチェックを改良しました
  • daemon/container: wait-for-websocket が無効の時に戻り値を記憶するようにしました (Issue #2243)
  • daemon/container: {create,remove}UnixDevice から使われていない"name" 引数を削除しました
  • daemon/container: より多くのエラー情報をユーザに戻すようにしました (Issue #2190)
  • daemon/container: ディスクデバイスの順序を名前の前にパスでソートするようにしました (Issue #2249)
  • daemon/container: シャットダウン時に freeze されているコンテナを unfreeze するようにしました (Issue #2164)
  • daemon/db: dbアップグレード時に$LXD_DIR/containers が存在しなくても失敗しないようにしました (LP: #1602025)
  • daemon/db: docker プロファイルから fuse デバイスを削除しました (Issue #2213)
  • daemon/migration: tempdir の取り扱いを修正しました
  • daemon/profile: 無効なプロファイル名の使用を防止するようにしました (Issue #2274)
  • daemon/zfs: 32bit 環境下での zfs ボリュームのサイズを修正しました (Issue #2158)
  • daemon/zfs: 削除時に copy- のつくスナップショットのみ削除するようにしました (Issue #2127)
  • daemon/zfs: zfs.ImageCreate エラー時にサブボリュームも削除するようにしました (Issue #2194)
  • doc: /dev/net/tun と /dev/fuse をドキュメントに追加しました
  • doc: README.md に squashfs-tools のインストールのコマンドを追加しました
  • doc: pongo テンプレートの config_get のドキュメントを追加しました
  • doc: curl での api examples の間違いを修正しました
  • doc: LXDの本番利用向けのドキュメントを追加しました (Issue #2256)
  • doc: README.md のパッケージを少し並び替えました
  • lxd-bridge-proxy: 使われていないコードを削除しました
  • Makefile: "make dist" でもgo getを複数走らせるようにしました
  • scripts: lxc-to-lxd が virtualenv 下で動くようにしました (Issue #2175)
  • simplestreams: サイズの表示を修正しました (Issue #2223)
  • simplestreams: ラベルなしのイメージを処理するようにしました
  • simplestreams: squashfs と tar.xz でイメージの一覧が使えるようになりました
  • simplestreams: 有効期間の終了を適切に処理するようにしました
  • simplestreams: 適切な user-agent をセットするようにしました
  • simplestreams: 正しい順序でハッシュを使用するようにしました (Issue #2239)

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.3 リリースのお知らせ

28th of June 2016 このリリースは LXD 2.0 の 3 回目のバグフィックスリリースです。

LXD 2.0.2 以降の変更は以下の通りです

重要な変更点 :

  • LXD には "unsquashfs" コマンドが必要になりました。新しい Ubuntu イメージを展開するために必要なためです
  • Sync の応答を返すエンドポイントへの POST リクエストに対して、REST API は Location ヘッダ付きの 201 番コードを返すようになりました。これまでは、Location ヘッダなしの 200 番コードが返っている場合がありました
  • デフォルトで、コンテナには /dev/fuse デバイスが作成されるようになりました

細かな改良点 :

  • extras: bash completion を改良しました
  • client/delete: --force の短縮形として -f が使えるようになりました
  • client/info: サーバ情報が証明書のフィンガープリントを含むようになりました (Issue #2098)
  • client/info: エラー時の --show-log の実行例にリモートホストの名前を表示するようにしました
  • core: 新しい Ubuntu イメージで必要なので squashfs のサポートを追加しました
  • core: ブラウザが LXD とやりとりできるよう、TLS cipher リストを調整しました (Issue #2034)
  • daemon/container: デフォルトで /dev/fuse をセットアップするようになりました

バグ修正 :

  • client: 接続エラーの際の扱いを改良しました
  • client: サブコマンドのエイリアスをサポートするために、すべてのエイリアス引数をチェックするようになりました (Issue #2095)
  • client/file: edit の際にファイルのパーミッションを変更しなくなりました
  • client/image: イメージコピーの際にデーモンが提示したフィンガープリントを使うようにしました (Issue #2162)
  • client: クライアントの URL を正規化するようにしました (Issue #2112)
  • client/remote: 'remote add' 時のパニックを修正しました (Issue #2089)
  • client/remote: <FQDN>:<PORT> のパースを修正しました
  • core: PEM デコードエラーの扱いを改良しました (Issue #2119)
  • core: ReaderToChannel 内でゼロバイト送出をチェックするようになりました (Issue #2072)
  • core: 並列の Websocket 書き込みの際のクラッシュを修正しました
  • core: WebsocketUpgrader のバッファサイズとしてデフォルト値を使うようになりました
  • daemon: lxd コマンドのヘルプの改行が抜けていたので追加しました
  • daemon/api: sync の POST リクエストの際に Location ヘッダをセットするようにしました (Issue #2092)
  • daemon/btrfs: btrfs でのリストアの失敗を修正しました (Issue #2058)
  • daemon/certificate: すでに存在する証明書を追加しようとした場合、失敗するようになりました
  • daemon/config:圧縮アルゴリズムに "none" を設定できるようにしました (再発バグの修正)
  • daemon/container: イメージのエクスポート時の rootfs tarball の出力パスを追加しました (Issue #1980)
  • daemon/container: バインドマウントの扱いを改良しました
  • daemon/container: 存在しないファイルの GET の際は 404 を返すようになりました (Issue #2059)
  • daemon/container: device cgroup の定義を読みやすくしました
  • daemon/containers: ディスクのセットアップが失敗した際のエラーメッセージを改良しました
  • daemon/container: 更新が失敗した際の Undo 処理に defer を使うようにしました
  • daemon/db: db のアップグレードのテスト時は zfs.img の chmod しないようにしました
  • daemon/db: テストモードの際は /var/lib/lxd/containers の更新をしないようにしました
  • daemon/init: ストレージキーを unset するようにしました
  • daemon/lvm: LVM の最近のバージョンでは lvextend を呼ばなくしました
  • daemon/migration: zfs/btrfs の send 時にバッファリングを設定するようにしました
  • daemon/migration: チェックポイント・リストアのコードを全体的にシンプルにしました
  • daemon/migration: LXC の新しいマイグレーション API に切り替えました
  • daemon/zfs: ブロックデバイスの検出を改良しました
  • daemon/zfs: マウントされてない場合はマウントするようにしました (Issue #1888)
  • doc: ZFS スナップショットの欠点について記載しました (Issue #2055)
  • doc: configuration.md から JSON の例を削除しました
  • doc: すべてのフィールドをカバーするように証明書の JSON の例を修正しました
  • doc: "unix-block" の説明内の Typo を修正しました
  • doc: 共有フォルダの説明を改良しました (Issue #2123)
  • lxd/patches: 一度だけ適用するパッチの仕組みのサポートを追加しました (DB スキーマの更新からの分離)
  • Makefile: go get が悪化し、3 回実行する必要が出てきました
  • Makefile: xgettext-go のリポジトリ URL を更新しました
  • migration: エラーの際の処理を統合しました
  • test: エイリアス作成の際のリターンコードとして 201 を有効にしました
  • test: ReaderToChannel のテストを追加しました
  • test: "lxc file edit" 時の対象のファイルのオーナーとパーミッションのテストを追加しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.2 リリースのお知らせ

30th of May 2016

このリリースは LXD 2.0 に対する 2 回目のバグフィックスリリースであり、最初の脆弱性対応のアップデートです。

CVE-2016-1581

"lxd init" を使って loop ベースの ZFS プールを設定すると、出来上がったファイル (/var/lib/lxd/zfs.img) が、全ユーザに読み取り権限のあるファイルとなってしまうことについて、Robie Basak から報告を受けました。

これにより、コンテナ内のファイルのパーミッションに関わらず、システム上の全ユーザがすべての LXD コンテナのデータをコピーして読むことができます。そして、攻撃者が同じことを行う可能性があります。

LXD 2.0.2 は "lxd init" のロジックを修正し、常に zfs.img のモードが 0600 に設定されるようにしました。

加えて、アップグレード処理が LXD の最初の実行時に実行され、既存の zfs.img のモードを 0600 に設定します。

もし、影響を受けるシステムを管理しており、許可されていないユーザが zfs.img ファイルにアクセスしたことが疑われる場合は、対象のコンテナ内に格納されている機密情報 (秘密鍵や同等のクレデンシャル) を置き換えることを検討すべきです。

CVE-2016-1582

非特権コンテナ (デフォルトのモードです。security.privileged=false) を特権モードのコンテナ (security.privileged=true に設定されます) に切り替える際、コンテナの rootfs は適切に (ユーザ、グループの) 再マッピングが行われますが、コンテナディレクトリ自身 (/var/lib/lxd/containers/XYZ) はモードが 0755 のままとなることについて、Robie Basak から報告を受けました。

これにより、ホスト上の非特権ユーザすべてが /var/lib/lxd/containers/XYZ 以下の、setuid バイナリを含む全ユーザに読み取り権限のあるパスにアクセスできることになり、問題です。

このような setuid バイナリが、通常ではアクセスできないようなデータにアクセスしたり、自身の権限を昇格させたりする目的でホスト上で使われる可能性があります。

LXD 2.0.2 は、すべての特権コンテナが常に確実に root 所有であるようにし、非特権ユーザによるトラバーサルを防ぐためにモードを 0700 に設定することで、このような動作を修正しました。

加えて、アップグレード処理が LXD の最初の実行時に実行され、既存の特権コンテナの所有権とモードを root:root 0700 に設定します。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

対象のコミット

LXD 2.0.1 リリースのお知らせ 2016 年 5 月 16 日

16th of May 2016

このリリースは LXD 2.0 に対する最初のバグフィックスリリースです。

LXD 2.0.0 以降修正されたバグは以下の通りです

  • shmounts がマウントできなくてもコンテナの起動が失敗しなくなりました
  • プロキシが変更されたときに simplestream のキャッシュを無効化するようにしました
  • コンテナの起動時に、設定ファイルをログ保存ディレクトリに直接書くようになりました
  • list で空のレスポンスが原因でクラッシュするバグを修正しました (Issue #1903)
  • 存在しないプロファイルを消去しようとした際に失敗するようになりました (Issue #1886)
  • image import のヘルプに --alias を追加しました (Issue #1900)
  • "lxc start" と "lxc stop" のオプション (stateful/stateless) を修正しました
  • 不正なソースストリームな場合にわかりやすいエラーメッセージを出力するようにしました (simplestreams)
  • 基本的な REST API の使用例を README.md に追加しました
  • lxc stop --help の typo を修正しました
  • lxc-to-lxd を stable な pylxd API を使うように変換しました (Issue #1901)
  • イメージの更新が失敗した場合に適切にログが出力されるようになりました
  • イメージの検証を改良し、不正なイメージの場合はロールバックするようになりました (Issue #1913)
  • send 操作が SmartError 経由で値を返すようになりました
  • lxc list の基本的なフィルタリングを修正しました (Issue #1917)
  • 初めての起動時にユーザにコンテナの起動方法を案内するようになりました (Issue #1931)
  • ローカルイメージの名前と一致しない場合は "remote" を "remote:" と認識するようになりました (Issue #1931)
  • スナップショットに対して LXC の設定をロードしないようにしました (Issue #1935)
  • list: 値が設定されていないキーでフィルタリングできるようになりました (Issue #1917)
  • lxc launch の例を修正しました
  • 日本語メッセージの更新とその他の言語の po ファイルの更新を行いました
  • 古いカーネルでは cpuset.cpus にフォールバックするようにしました (Issue #1929)
  • サーバの設定キーを適切に検証するようになりました (Issue #1939)
  • ストレージの daemonConfig の扱いを修正しました
  • forkmigrate 時に設定ファイルを消去しないようにしました
  • 設定の検証が変わったので、設定の処理を修正しました
  • ドキュメントの Markdown の文法を修正しました
  • ディスクを消去しているとき、すぐに失敗とならないようにしました (Issue #1964)
  • 再帰的にデバイスを消去しなくなりました
  • unix デバイスで消去に失敗したものがあっても失敗しなくなりました
  • unix-char、unix-block デバイスに対する設定チェックとして同じチェックを使うようにしました
  • fs オブジェクトが存在しない場合でも (コンテナパスが) 消去できるようになりました (Issue #1967)
  • ログファイルを適切に expire するようになりました (Issue #1966)
  • ロギングをより一貫性があるようにしました
  • zfs のエラーを無視しなくなりました
  • すでに存在するファイルのモード、uid、gid を適切に更新するようになりました (Issue #1975)
  • 不正な証明書ファイルを検出するようになりました (Issue #1977)
  • 壊れた apparmor のステータスチェックを修正しました
  • boolean 文字列として on/off が使えるようになりました
  • コンテナの設定キーを適切に検証するようになりました (Issue #1940)
  • rsync の転送エラーを表示するようにしました
  • execPath をグローバル変数に移動しました
  • websocket 上の rsync の際、nc -U の代わりにカスタムの netcat を使うようになりました (Issue #1944)
  • マイグレーション中の間違った state ディレクトリパスを修正しました
  • ストレージの削除が失敗したときもイメージの削除が失敗しなくなりました
  • 日本語メッセージの改良を行いました
  • いくつかの処理で criu コマンドの存在チェックを行うようになりました
  • (ライヴ) マイグレーションのテストを作り替えました
  • create 時の devices はオプショナルであることを明確にドキュメントに記載しました
  • すべてのイメージのコピーの取得元を適切に記録するようになりました (Issue #2010)
  • コンテナが作成中の場合に ERROR 状態にならないようにしました (Issue #1988)
  • operations に対して送られるイベントをクリーンアップするようになりました (Issue #1992)
  • ZFS の refcounting に関する問題を修正しました (Issue #1916 and Issue #2013)
  • スナップショットをコピーした際、スナップショットの設定もコピーするようにしました (Issue #2017)
  • スナップショットに対する lxc config show コマンドを実装しました
  • REST API の使い方に Unix ドメインソケット経由のサンプルを追加しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0 リリースのお知らせ 2016 年 4 月 11 日

11th of April 2016

LXD 2.0 を正式にリリースしました!

LXD 2.0 は LXC 2.0、LXCFS 2.0 と同様に、長期サポート対象のリリースです。開発元が 5 年間のサポート、つまり 2021 年の 6 月 1 日までのサポートを約束します。

LXD 2.0 の機能の説明はこちらでご覧いただけます: LXD 2.0: Blog post series

LXD 2.0 のパッケージが Ubuntu や他の Linux ディストリビューションですぐに利用可能になるでしょう。

それまでは、オンラインでデモサービスを使ってお試しください。

LXD 2.0.0 rc9 からの主な変更点

  • client: "lxc list" に json フォーマットによる出力オプションを追加しました
  • client: (LXD の初期化が済んでない) 初回実行時に lxd init を実行するようにメッセージを出力するようにしました
  • lxd: ネストしている場合に security.privileged を設定できるようになりました

LXD 2.0.0 rc9 以降のバグ修正

  • client: ローカルの設定でなく展開された設定をフィルタするようにしました
  • client: file push が与える間違ったファイルモードを修正しました
  • client: パスの代わりにスナップショット名を表示するようにしました
  • client: ヘルプメッセージを調整しました
  • client: 日本語メッセージを更新しました
  • core: ファイルモードを umask させないようにしました
  • core: 取得するファイルの uid、gid、モードを修正しました
  • core: zfs: 残ったスナップショットを削除するようにしました
  • core: zfs: LXD と関係のないパスを無視するようにしました
  • doc: API を stable としました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc9 リリースのお知らせ

6th of April 2016

このリリースの主な変更点

  • 1.0 API は stable になりました
  • テストに lxd-benchmark ツールが新たに追加されました
  • クライアントが日本語に翻訳されました (訳注: 一部未翻訳の部分が残っています)

バグ修正

  • core: イメージのエイリアスの更新時に target が設定されているかチェックするようになりました
  • core: /proc/self/status の cpu map を使わないようにしました
  • core: gzip 以外の圧縮アルゴリズムすべての修正を行いました
  • core: ZFS の信頼性とパフォーマンスの改良を行いました
  • core: lxcbr0 はもう使われません。lxdbr0 に置き換えられました
  • core: セットアップモード中はコンテナに関わる操作を行わなくなりました
  • core: lxc.rootfs.bdev を設定するようになりました (パフォーマンスの改良のため)
  • core: コンテナの idmap の再マッピングの後、ストレージを停止させるようにしました
  • core: CPU の利用で無効化されている CPU が扱えるようになりました
  • core: イベントリスナーを調整して絞るようにしました
  • core: 良くない go-lxc の Start() の振る舞いに対する回避策を採りました
  • extra: --fast を使うように bash completion を更新しました (パフォーマンス改良のため)
  • list: ディスクまたはネットワーク情報がない場合にクラッシュしないようにしました
  • lxd-bridge: プロキシがない場合にリンクローカルアドレスを設定しないようにしました
  • lxd-bridge-proxy: ポート番号を 13128 に変更しました
  • lxd-bridge: 存在しない lxd-dnsmasq ユーザの代わりに lxd ユーザで dnsmasq を実行するようにしました
  • main: 実行中のコンテナがある場合、ActiveIfNeeded トリガの対象となりました
  • specs: イメージは 6 時間ごとに自動更新されます (という記載に変更しました)
  • tests: ファイルシステムにあまり依存しなくなりました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc8 リリースのお知らせ 2016 年 3 月 31 日

31st of March 2016

このリリースの主な変更点

  • LVM ボリュームサイズが環境変数でなく、設定項目として設定できるようになりました
  • "lxc image alias list" で他のリストコマンドのようなフィルタリングが使えるようになりました

バグ修正

  • exec の際の初期サイズ (高さ、幅) の修正を行いました
  • パケット送信数の値が間違っていたのを修正しました
  • 長いパス名で RemoveAll が失敗していたことに対する回避策を採りました
  • doc: Markdown の修正
  • コンテナの開始時に全てのテンプレートを適用するようにしました
  • simplestreams: コードをクリーンアップしました
  • コマンドの実行に fork を使うようにしました
  • apparmor プロファイルのアンロードが失敗したことを致命的なエラーではないようにしました
  • コンテナの停止が失敗したときのデッドロックを防ぎました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc7 リリースのお知らせ

28th of March 2016

このリリースの主な変更点

  • "lxc info" がリソース消費量を表示するようになりました
  • bash completion を改良しました
  • イメージプロパティからコンテナを作成する機能を実装しました

バグ修正

  • exec: 使われないコードを除去しました
  • exec: 初期のウィンドウサイズを送るようになりました
  • exec: client: 常にウィンドウサイズを送らなくなりました
  • exec: 対話 (interactive) モードの時だけターミナルサイズにアクセスするようになりました
  • docs: s/initial/Initial
  • Tests: 出力をパースするために翻訳を行わないようにしました
  • URL パーサの問題の回避策を採りました
  • ZFS リストアのエラー出力の明確化を行いました
  • lxd-bridge: IPv6 が無効でも失敗しなくなりました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc6 リリースのお知らせ 2016 年 3 月 23 日

23rd of March 2016

このリリースの主な変更点

  • 新たにデーモンに "setup mode" が追加されました。これは LXD デーモンが起動した後、コンテナが起動し始める前に、LXD デーモンに対して設定を行う間に使う状態です
  • "lxc config device" と "lxc profile device" コマンドに "get"、"set"、"unset" コマンドを追加しました
  • "lxc list" で壊れたコンテナを表示しないのではなく "ERROR" と表示するようになりました

バグ修正

  • lxd init: サーバアドレスの指定にはポートは不要であることを表示するようにしました
  • lxd init: 空のパスワードを受け付けるようになりました
  • lxd init: 8443 番ポートを推奨するように表示するようにしました
  • README: docker と default プロファイルを適用するようにドキュメントに記載しました (訳注: LXD コンテナ内部で docker を動作させる場合)
  • IsMock を MockMode にリネームしました (訳注: プログラム内部の変数の名前の話)
  • デーモン初期化処理をきれいに整理しました
  • startDaemon 関数を消去しました
  • main.go 内の関数名を整えました
  • waitready の改良を行いました (訳注: デーモンが内部的にきちんと処理可能状態になるのを待つようになった)
  • 新しいデバイスノードのパーミッションの問題を修正しました
  • ブリッジが無効化されていても停止できるようになりました
  • いくつか lxd-bridge の修正を行いました
  • lxd-bridge: shellcheck の結果が良くなるように修正しました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc5 リリースのお知らせ 2016 年 3 月 21 日

21st of March 2016

このリリースの主な変更点

  • DELETE /1.0/images/ が実際に Async となるように修正を行いました。 これは仕様に合致させるための小さな API の変更です。 この変更により、古いクライアントに対する後方互換性が失われました (イメージの消去を行う場合のみです)。
  • 非推奨だった lxd-images スクリプトが完全に削除されました

バグ修正

  • イメージの POST 時のエラー出力を改良しました
  • スナップショット周りのエラーハンドリングのロジックを修正しました
  • コンテナのシャットダウンが実際に並列で行われるように修正しました
  • 'POST /1.0/images' に対する 'auto_update' パラメータの説明をドキュメントに追加しました
  • ステートフルな起動の動きを作り替えました
  • ステートフルなスナップショットの動きを作り替えました
  • 非特権の場合、mqueue をバインドマウントにしました
  • コンテナ内で Docker を使う場合のドキュメントを更新しました
  • モニタータイムアウトを 5 秒に増やしました
  • lxd-bridge: 少し調整しました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc4 リリースのお知らせ

16th of March 2016

このリリースの主な変更点

  • 再帰バインドマウント (ディスクエントリ上の再帰的プロパティ) をサポートしました (訳注: mount の rbind オプション)
  • 新たにコンテナのステータスとして "ERROR" を追加しました。LXC とのコミュニケーションに問題があることを示すのに使います
  • 存在しないファイルにのみ適用するテンプレートを指定できるようになりました (create_only プロパティ)
  • すべての仕様を更新し、doc/ ディレクトリに移動させました
  • /dev/lxd へのアクセスはコンテナ内の uid 0 のユーザに制限されるようになりました

バグ修正

  • devices client: 成功時にのみ成功のメッセージを表示するようになりました
  • devlxd がコンテナの検出に失敗する問題を修正しました
  • "device show" コマンドが yaml を表示するようになりました
  • specs: イメージの扱いを明確化しました
  • specs: command-line-user-experience.md を削除しました (訳注: コマンドの help を参照するようにとのことです)
  • specs: dia 形式のデータベース図を削除しました
  • specs: デーモンの仕様を明確化しました
  • specs: /dev/lxd の仕様を現状に合うように更新しました
  • specs: 環境変数のリストを更新しました
  • specs: SSL の仕様を現状に合うように更新しました
  • specs: マイグレーションの文書を再フォーマットしました
  • specs: 要求仕様を更新しました
  • specs: ストレージバックエンドの仕様を更新しました
  • specs: ユーザ名前空間 (userns) について実際に合うように更新しました
  • docker profile: オーバーマウントができるよう apparmor プロファイルを追加しました
  • リモートの URL をより厳格にパースするようになりました
  • exec セッションの外側からの devlxd へのアクセスの問題を修正しました
  • public と simplestream のリモートに関して適切なエラーメッセージを返すようになりました
  • デフォルトで sys_rawio をブロックするようになりました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc3 リリースのお知らせ

11th of March 2016

このリリースの主な変更点

  • GET /1.0/containers/NAME/snapshots/SNAPNAME はスナップショットに含まれる設定とデバイスを返すようになりました
  • デーモンの使う HTTP プロキシに関する 3 つの新たな設定項目が導入されました
    • core.proxy_https (設定されていない場合は HTTPS_PROXY 環境変数を使用します )
    • core.proxy_http (設定されていない場合は HTTP_PROXY 環境変数を使用します )
    • core.proxy_ignore_hosts (設定されていない場合は NO_PROXY 環境変数を使用します )
  • simplestream のデータを 1 時間キャッシュするようになりました。リモートサーバに何度もアクセスを行うことがありません
  • LXD サーバから取得したイメージが自動で更新できるようになりました

バグ修正

  • ConnectInfo が RemoteConfig を使うように変更しました
  • カーネルの多重マウントを防ぐ回避策を講じました
  • migration: ファイルシステムの移動を少しスマートにするようにしました (訳注: ライブマイグレーション時、コンテナの稼働中にコンテナのファイルシステムやスナップショットを移動したあとにチェックポイントと最後の同期を行うようにした)
  • tests: UTC で比較を行うことでエラーを防ぐようにしました
  • zfs: スナップショットだけを send する場合の処理を修正しました
  • LVM LV サイズを減らせるようになりました。そのテストを追加しました
  • profiles: 見つからない場合のエラーメッセージをマスクしないようにしました
  • mounting: ブロックデバイスの時だけファイルシステムをマウントするようにしました
  • イベントロッキングを作りなおしました
  • コンテナロックの同時読み書きによるパニックを修正しました
  • zfs: pool のヘッダ行をスキップするようにしました
  • auto モードの時だけ適用される init 引数を明確にしました
  • 存在する名前でスナップショットを取得しようとした場合のエラーメッセージを修正しました
  • lvm: エラーをエラーとしてログに書くようにしました
  • NewClient が呼ばれた時はクライアント証明書を生成しないようにしました
  • イメージ名の解析を修正しました
  • forkgetfile と forkputfile からのエラーをフォワードするようにしました
  • https_address の変更をより信頼性が高くなるようにしました
  • migration: スナップショット送信のクリーンアップを defer しないようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc2 リリースのお知らせ

7th of March 2016

このリリースの主な変更点

  • REST の CORS ヘッダ用の設定項目を追加しました
  • lxd-images のドロップに一歩近づきました。lxd-images は単なる shim になりました (訳注: 内部的に lxc コマンド or テスト用のスクリプトに変換して実行するだけのスクリプト)
  • Go 1.5 未満はサポートされなくなりました。依存関係のために 1.4 をサポートしなくなったためです

バグ修正

  • エイリアスを使ってリモートの lxd からイメージをインポートする際の問題を修正しました
  • 特別な一時的エントリの作成時の問題を修正しました
  • 標準出力がファイルの時のテストを修正しました
  • イメージを扱う前にストレージドライバを初期化するようにしました
  • lxd init は root でしか実行できなくなりました
  • ソケットが準備出来たあとにだけ、コンテナをロードしようとするようにしました
  • イメージダウンロードのデフォルトプロトコルを修正しました
  • IP アドレスが設定されたときだけ、フォワーディングの設定をするようにしました
  • client: NewClientFromInfo にデフォルトの設定を追加しました
  • dbUpdateFromV26 内の間違ったデバイスタイプを修正しました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.rc1 リリースのお知らせ 2016 年 3 月 2 日

2nd of March 2016 このリリースは LXD 2.0 の最初のリリース候補です。これは、LXD 2.0 で必要なすべての機能がマージされたと私たちが考えていることを意味します。そして、この後ファイナルリリースまでの間、バグフィックスと小さな使い勝手の改良だけが行われることになるでしょう。

このリリースの主な変更点

  • cgroup 名前空間 (namespace) をサポートしました
  • lxc.network.X.ipv{4,6}[.gateway] を raw.lxc に設定できるようになりました (raw.lxc での設定に関しては注意が必要です)
  • コンテナが非特権の場合は、/proc と /sys は制限なくストレートにマウントされます (訳注: 非特権の場合はrwでマウントされます。特権の場合は書き込めると良くないファイルはroでそれ以外rwでマウントされます)
  • IP アドレスのスコープが提供されるようになりました。これはデフォルトでローカルアドレスをフィルタするのに使われます
  • 標準出力が tty でない場合、lxc exec はデフォルトで non-interactive モードになります
  • クライアントが表示するテーブルはすべて同じような見た目になります
  • Simplestream がクライアントとサーバの両方でネイティブにサポートされるようになりました。lxd-images での必要性が除外されたためです
  • バックグラウンドでのイメージの同期がサーバでサポートされ、すべてのキャッシュされたイメージがデフォルトで同期されるようになりました
  • イメージが使われた最後の時間と、それがキャッシュにストアされているかどうかが API 経由で取得できるようになり、"lxc image info" で見られるようになりました
  • プロファイルが説明フィールドを持つようになりました
  • コンテナを kill するのでなく、ディスクにチェックポイントするステートフルなコンテナの停止が可能になりました。次の起動時にレジュームします
  • "docker" プロファイルがデフォルトで提供されるようになりました。LXD コンテナ内部で Docker を実行できるようにするのに必要な設定がなされています
  • イメージの import がアップロードの進捗表示を行うようになりました

バグ修正

  • GenCert 関数のリファクタリングを行い、再利用できるようになりました
  • tests: コメントアウトしていたコードを除去しました
  • lxc.NewClient を作りなおしました。ディスクキャッシュが不要になりました
  • shared: 制限をパースする関数を export しました
  • アップグレードの手順を README に追加しました
  • websocket: 並列の書き込み時の panic() を修正しました
  • state 関数が fail しないようにしました
  • specs: Etag セクションを削除しました (実装されていません)
  • specs: rest-api のレイアウトの修正を行いました
  • list: PID カラムでクラッシュする問題を修正しました
  • lxc init での名前の表示の問題を修正しました
  • blkio 制限の色々な問題を修正しました
  • apparmor プロファイル内でハードコードされていたアーキテクチャパスを修正しました
  • tests: ネットワークのテスト時の失敗を修正しました
  • tests: 証明書チェックの数を修正しました
  • スナップショット時の設定の問題を修正しました
  • ステートフルかどうかのチェックがファイルシステムに頼らないようにしました
  • チェックポイントの失敗を検出できるようにしました
  • DB テストを修正しました
  • イベントリスナー周りのロックを改良しました
  • コンテナが正しくリブートしない問題を修正しました
  • インストール手順中のビルドに必要なパッケージに "make" を追加しました
  • 不完全な sub?id エントリで停止しないようにしました
  • client: "lxc stop remote:" コマンドのエラー出力の改良
  • クライアントで可能な場合はいつでも shared 構造体を使うようにしました
  • launch 時のダウンロードの進捗表示を修正しました
  • 表での数字の揃えを修正しました

アップグレードの注意

  • このリリースで lxd-images が非推奨となりました。代わりに同じ機能を持ち、デフォルトで設定される ubuntu: か ubuntu-daily: リモートサーバを使用してください。確実にイメージをローカルストアにコピーする必要がある場合、"lxc image copy ubuntu:14.04 local: --alias ubuntu" で実現できます。

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.beta4 リリースのお知らせ

23rd of February 2016

このリリースの主な変更点

  • REST API の変更
    • /1.0 で返る API バージョンに関するデータが変わりました。api_status, api_version and api_extensions が返ります
    • アーキテクチャのフィールドで、意味がわかりづらい整数の代わりに文字列が返るようになりました
    • GET /1.0/containers/NAME/state を作りなおしました。より詳しいネットワーク、ディスク使用量、メモリ消費量の情報を含むようになりました
  • "lxc list" に速く表示できるフィールドだけを表示する --fast モードを追加しました
  • "lxc info" がコンテナのアーキテクチャを表示するようになりました
  • プロセス数制限 (pids cgroup) を追加しました

バグ修正

  • リモートのイメージエイリアスからのコンテナ作成時のバグを修正しました
  • エラーに対する Content-Type の値を修正しました
  • コンテナを停止する前にユーザに問い合わせるようになりました
  • cgo を使ってターミナル機能を再実装しました (ppc64el 上の動作が修正されました)
  • /dev/zero へのアクセスを許可しました
  • tests: pprof を自己完結するようにしました
  • bridge-utils の代わりに iproute2 を使うようになりました
  • lxd-images: sync を修正しました
  • cgroup 名前空間が有効なカーネルで cgroupfs をマウントできるようにしました
  • コンテナのプロセス数取得を pids cgroup を使って最適化しました
  • file push 時のパーミッションの問題を修正しました
  • list: 10 並列でコンテナの問い合わせを行うようにしました
  • ホストのネットワークが変化した時だけリバランスするようにしました
  • list: go routines を少し最適化するようにしました

アップグレードの注意

  • このリリースは古いバージョンの LXD に対する後方互換性がありません。 クライアントとサーバのすべてを同じバージョンで実行するように注意してください。
  • REST API の変更に関する前述の記載をご覧ください

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.beta3 リリースのお知らせ

18th of February 2016

このリリースの主な変更点

  • "lxc publish" で実行中のコンテナに対して実行を強制することができるようになりました (一時的にコンテナは停止します)
  • "lxc image list" が description によってソートされて表示されるようになりました
  • REST API を完全に見直し、すべて仕様にマッチするように更新しました
    • GET /1.0 は "public" フィールドを表示します
    • GET /1.0/certificates はエンドポイントの有効なリストを返します
    • GET /1.0/containers/NAME はパフォーマンスの問題のために、詳細なコンテナの実行ステータス ("status" キー) を返さなくなりました。詳細な実行ステータスを取得するためには /1.0/containers/NAME/state という別のクエリが必要です
    • GET /1.0/containers/NAME/logs はエンドポイントの有効なリストを返します
    • POST /1.0/containers/NAME/snapshots は "stateful" フィールドを設定しなくても良くなりました (デフォルトで false に設定されます) (訳注: 翻訳公開当初「設定する必要がありました」と逆の訳になっていました)
    • POST /1.0/images を使って、すべてのサポートされている入力タイプで "properties" と "filename" を上書きできます
    • GET /1.0/images/aliases/NAME が正しいデータを返すようになりました ("name" と "target" フィールドが入れ替わりました)
    • POST /1.0/images/aliases/NAME を実装しました
    • PUT /1.0/images/aliases/NAME を実装しました
    • GET /1.0/images/FINGERPRINT は空の "target" フィールドを alias に表示しません
    • GET /1.0/networks/NAME を再設計しました
    • GET /1.0/operations/UUID/wait?timeout=X が実際にタイムアウトするようになりました
    • POST /1.0/profiles/NAME を実装しました
    • タイムスタンプがすべて RFC3339 文字列となり、一貫して名付けられるようになりました (created_at, updated_at, expires_at, uploaded_at)
    • 同期操作の応答では、空の "operation" フィールドを含まなくなりました
  • サーバ間の通信に追加のセキュリティが適用されるようになりました:
    • 問い合わせと同時に証明書が渡された場合をのぞいて、以下の操作ではシステムの CA によって有効であるとされたリモートの証明書が必要になりました:
      • マイグレーションによるコンテナ作成 (copy, move, ライブマイグレーション)
      • リモートイメージによるコンテナの作成
      • 他の LXD サーバからのイメージコピー
      • https でのイメージのインポート
    • コマンドラインクライアントは自動的に必要な "certificate" フィールドを上記の要求に対して設定します
  • このバージョンから、LXD は Go 1.3 をサポートしません

バグ修正

  • lxc file で不正なコンテナ名を修正しました
  • tests: スラッシュを含むエイリアスのテストを追加しました
  • ephemeral と architecture フラグの更新の問題を修正しました
  • publish のエラーメッセージを少しわかりやすくしました
  • 最後が / (スラッシュ) で終わるエイリアスの操作の問題を修正しました
  • specs: REST API を実際に合うように更新しました
  • イメージのパースが終わるまで、イメージを所定の場所に移動しなくなりました
  • 確実に正しい Dialer と Proxy を使うようにしました
  • specs: キー名が間違っていたのを修正しました
  • Windows 上の lxc file の問題を修正しました
  • LXD 0.27 以前からのアップグレードで DB のマイグレーションが失敗していたのを修正しました
  • クライアントツールでグローバル変数の使用を止めました
  • 接続の初期の失敗によるエラーの修正を行いました
  • 転送時に常にファイルサイズを出力するようにしました
  • いくつか Typo を修正しました
  • lxd-images: init 時に atexit を register するようにしました
  • specs: btrfs send/receive に関してストレージの仕様を更新しました
  • 開発元の go-systemd を使うようになりました (これは Go 1.3 に対する後方互換性がありません)

アップグレードの注意

  • このリリースは、古い LXD のバージョンに対する後方互換性がありません。 クライアントとサーバを同じバージョンで実行するようにしてください
  • REST API とセキュリティポリシーの変更に関する前述の記載をご覧ください

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.beta2 リリースのお知らせ

10th of February 2016

このリリースの主な変更点

  • 再度 /dev/console を有効にしました
  • btrfs バックエンドが最適化されたコンテナの転送 (send/receive) をサポートしました
  • ソースファイルの所有権、パーミッションが "lxc file push" のときにデフォルトで保存されるようになりました
  • "lxc list" と "lxc image list" がフィルタとして正規表現を受け付けるようになりました
  • lxc info がコンテナの作成日 (わかっている場合のみ)、プロファイルのリスト、詳細なスナップショット情報を表示するようになりました。
  • 再帰的なエイリアスがクライアントでサポートされました (e.g. "delete: delete -f")
  • "lxc delete" を実行中のコンテナに対して実行する場合は "-f/--force" オプションが必要になりました
  • "lxc delete" に、消去時にユーザの確認を要求する -i オプションが追加されました

バグ修正

  • arm64 上の LXD のビルドの問題を修正しました
  • 新しいバージョン番号に対する "make dist" の問題を修正しました
  • specs: 再度、データベースの仕様を実際に合わせました
  • 設定されていないキーの設定を外そうとしたときに失敗するようになりました
  • 後方互換性のためのコードを消去しました
  • 新しいコンテナルートにスナップショットをコピーする際の問題を修正しました
  • マイグレーションの失敗時にスナップショットの停止が失敗する問題を修正しました
  • rsync を使ったスナップショットのマイグレーションの問題を修正しました
  • マイグレーションのフォールバックとして rsync を使うようになりました
  • ShiftIfNecessary を起動時のシフトに変更しました (訳注:マイグレーション時のスナップショットの[u|g]idのマッピングの変更をコンテナ起動時に行うようにした、だと思う)
  • info 中の i18n メッセージカタログの (再) 作成
  • ヘルプ出力をより効率的にするために冗長な言い回しを減らしました
  • blkio 制限をより堅固にしました
  • デフォルトのプロファイルに eth0 の名前 ("name") として "eth0" を追加しました
  • プロファイルを適用したメッセージは成功時のみ表示するようにしました
  • init: zfs モジュールの modprobe を試みるようにしました
  • init: フォーマットされていないディスクでの動作のために zpool create -f を使うようにしました
  • init: 利用可能なバックエンドの検出を改良しました
  • zfs: バックエンドが異なるストレージ間のコピー時の問題を修正しました
  • stresstest.sh の limits.memory の単位を M から MB に修正しました
  • command-line-user-experience の limits.memory の例の単位の末尾に byte を追加しました (訳注:M→MB、G→GB)

試用環境

この新しい LXD のリリースは、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 2.0.0.beta1 リリースのお知らせ 2016 年 1 月 26 日

26th of January 2016

このリリースの主な変更点

  • "lxc config edit" がローカルサーバの設定を編集できるようになりました
  • Block I/O 制限がサポートされました
  • ネットワーク I/O 制限がサポートされました

バグ修正

  • 存在しないエイリアスを削除しようとする際にエラーを出すようにしました
  • LXC 設定の読みこみを修正しました
  • テキストエディタの検出を改良しました
  • "lxc file edit" を修正しました
  • ネットワーク制限を追加しました
  • デーモンの IPv6 の扱いを修正しました
  • file pull/push の仕様と文書を更新しました
  • 壊れた LXC をより良く扱うようにしました (訳注:設定の読みこみに失敗するような壊れたコンテナに対して "BROKEN" というステータスを返して対応できるようにした)
  • zfs に対するマウントポイントを設定するのを防ぐために README を更新しました
  • イメージのコピーに成功した際にメッセージを表示するようにしました
  • TYPO を修正しました (sucessfully → successfully)
  • forkstart のデバッグを改良しました
  • (訳注:move で) マイグレーションでない場合は常に Rename() を呼ぶようにしました
  • イメージのアップロードでテンポラリファイルを使うようにしました
  • restore で start コマンドが失敗した場合にエラーを報告するようにしました
  • (訳注:lxc edit file で) ファイル転送時にターゲットのファイルを切り詰めるようにしました
  • 設定の raw キーは危険であることを注意書きしました
  • 特権コンテナの /dev/tty に書きこみを許可しました
  • ステートフルなスナップショットとリストアを実装しました
  • スナップショットの削除が失敗しても delete が失敗しないようにしました

試用環境

この新しい LXD のリリースが、すでに私たちの デモサービス で利用できます。

LXD 0.27 リリースのお知らせ

19th of January 2016

このリリースの主な変更点

  • コンテナの disk quota に対応しました (zfs と btrfs のみです)
  • イメージのコピーとコンテナの起動の間の進捗表示を行うようになりました
  • LXC コンテナを LXD コンテナに移行するスクリプトの初期バージョンを開発しました (非特権コンテナを除くほとんどすべての設定をサポートします)
  • 新たなコンテナプロパティ linux.kernel_modules を追加しました (コンテナの起動前にロードするモジュールのリストです)
  • 新たなサーバプロパティ core.https_allowed_origin を追加しました (Access-Control-Allow-Origin ヘッダを制御します)
  • プロファイルの変更がすべての対象のコンテナに動的に行われるようになりました
  • "lxc config edit" コマンドがサーバに対しても動作するようになりました
  • security.nesting の変更が動的に行われるようになりました
  • lvm バックエンドでの xfs がサポートされました
  • "lxc image list" コマンドでフィルタリングができるようになりました (名前、ハッシュ、プロパティで)
  • bash completion プロファイルの改良を行いました
  • "lxc remote list" コマンドでデフォルトのリモートサーバが表示されるようになりました
  • "lxc info" コマンドが、コンテナが一時的か永続的かを表示するようになりました
  • ヘルプメッセージを色々改良しました

バグ修正

  • デフォルトの http タイムアウトを 10 秒に設定しました
  • metadata.yaml がない場合でも publish の途中でクラッシュしなくなりました
  • マイグレーション中のエラー報告を改良しました
  • コピーの間のエラー報告を改良しました
  • コンテナがディスクから削除された時点でのみ、コンテナをデータベースから削除するようにしました
  • イメージがディスクから削除された時点でのみ、イメージをデータベースから削除するようにしました
  • LVM > 2.02.99 の場合の LVM バックエンドの修正を行いました
  • 高負荷時の DB パフォーマンスの改良を行いました
  • 非特権の CRIU イメージで正しく uidshift するようになりました
  • forkmigrate 実行時の競合を修正しました
  • イベントインターフェースの競合状態に関する修正を行いました
  • lxd-images コマンドがエラーになった場合に表示が乱れる問題を修正しました
  • 作成時に与えられたデバイスを無視しないようにしました
  • URLの最後に "/" が付いている場合も付いていない場合もサポートするように web サーバを修正しました
  • zfs pool の設定を削除することができるようになりました
  • lxd-setup-lvm-storage: デフォルトサイズとして 10G を追加しました
  • api: {Save|Load}Config は引数としてパスを受け取る必要があるようになりました (訳注: 設定ファイルのパスがハードコードされていたのを引数で与えられるようになりました)
  • 自動的に veth インターフェースをホストのブリッジに追加するように修正しました
  • スナップショットが過去に存在していた場合の zfs pool の設定を削除する際の問題を修正しました

試用環境

この新しい LXD のリリースは、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.26 リリースのお知らせ

4th of January 2016

このリリースの主な変更点

  • veth デバイスのホスト側の名前を指定するためのネットワークインターフェースのプロパティである "host_name" が新たに追加されました
  • 停止しているコンテナのファイルに対する pull/push/edit が可能になりました
  • "lxc list" コマンドでどのカラムを表示するかを指定できるようになりました (さらに、新たに PID が表示できるようになりました)

バグ修正

  • すべての CPU が使用できると仮定するのでなく、適切にアクティブな CPU マップを継承するようになりました
  • zfs: いくつかの境界条件の問題を修正しました
  • lvm: イメージからのコンテナの作成に関する修正を行いました
  • 毎回 Finger() を呼ぶことをやめ、ネットワークのラウンドトリップタイムを半減させました
  • コンテナの shmounts とデバイスディレクトリの不正なパーミッションを修正しました
  • コンテナの停止時に常にデバイスとマウントがクリーンアップされていなかった問題を修正しました
  • ホストがトリガーとなるコンテナの停止・再起動のパフォーマンスを改善しました (5 秒早くなりました)
  • LXD のコールフックのタイムアウトを 30 秒に設定しました (失敗時に無限にハングアップしたままになる代わりに)
  • テストのクリーンアップとドキュメントの追加を行いました
  • add/rename/remove 時のリモートの証明書の扱いに関する修正を行いました

試用環境

この新しい LXD のリリースは、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.25 リリースのお知らせ

21st of December 2015

このリリースの主な変更点

  • "lxc exec" コマンドに新たに --mode オプションが追加されました。これにより対話的でないモードを強制できます
  • s390x アーキテクチャ (IBM z/series 64bit) のフルサポート
  • @ARGS@ キーワードを使用することで、コマンドエイリアス中にコマンド引数を指定できるようになりました
  • CPU 制限のフルサポート (デフォルト値は全ての CPU、最大優先度、時間制限なしです):
    • limits.cpu: CPU の数 (e.g. 2) またはコアの範囲 (e.g. 0,2-3)
    • limits.cpu.allowance: 負荷がかかっている場合の CPU 時間の割合 (e.g. 50%) または絶対時間指定 (e.g. 10ms/50ms)
    • limits.cpu.priority: ホストに負荷がかかっている場合のコンテナの優先度。1 (最低) から 10 (最高) の間の値で指定します (e.g. 5)
  • メモリ制限のフルサポート (デフォルト値はメモリ制限なし、hard 使用、スワップ有効、priority 最大値):
    • limits.memory: バイト指定での制限 (kB, MB, GB, TB, PB, EB を使用可能) (e.g. 256MB) またはホスト搭載メモリに対する割合 (e.g. 20%)
    • limits.memory.enforce: hard (コンテナは割当以上のメモリを使えない)もしくは soft (高負荷時のみ制限が適用)
    • limits.memory.swap: true または false。コンテナがスワップを使えるかどうかを指定します
    • limits.memory.swap.priority: スワップ使用の優先度。1 から 10 の値で指定します。1 を指定するとほとんどのデータがディスクにスワップアウトします
  • CPU とメモリに対する制限は指定した時点で適用されます
  • 最適化された (send/receive) ZFS コンテナとスナップショットのマイグレーションのサポートを追加しました

バグ修正

  • 新しいテストで特定されたストレージの様々な境界条件に関する修正を行いました
  • lxd-images: エラーメッセージをより明確に出力するようになりました
  • イメージの expire ロジックの修正を行いました
  • ロギングのコードのリファクタリングを行いました
  • マイグレーションのコードを仕様に準拠させるように修正しました
  • 使用可能な CGroup コントローラの検出を行うようになりました
  • zfs: 最新ではない古いスナップショットからのリストアを防ぐようになりました
  • デバイスをコンテナに追加した際により明確にエラーを報告するようになりました
  • zfs: コンテナのリネームに関する修正を行いました
  • lvm: コンテナのリネームに関する修正を行いました
  • lvm: 古いバージョンの LVM 上での不具合を回避するようにしました
  • lvm: fdleak のメッセージを隠すようにしました
  • 整合性を保つためにディレクトリをいくつか移動するようになりました
  • exec: 排他的な書き込みのために fds map をロックするようにしました
  • lvm: スナップショットのリネームの処理を修正しました
  • lvm: コンテナのスナップショットのマイグレーションの修正を行いました
  • コンテナ DB の (余分なレコードの) クリーンアップに関する修正を行いました
  • イメージの (余分なレコードの) クリーンアップに関する修正を行いました
  • コンテナの arch == 0 の際にホストのアーキテクチャを使うようにしました
  • 設定とデバイスのバリデーションを (DBへのInsert時でなく) コンテナの作成、設定の更新時に行うようにしました
  • DB の余分なレコードのクリーンアップを行うようにしました
  • イメージが存在する場合により明確なエラーメッセージを返すようにしました
  • 設定されている場合だけ remote_cache_expiry を返すようにしました
  • volatile を適用しない場合に flush するようにしました

テスト

  • テストが全てのストレージバックエンドで実行できるようになりました
  • 境界条件がいくつか除去されました
  • テストでファイルシステム構造がクリーンかどうかをチェックするようになりました
  • テストでデータベースのテーブルがクリーンかどうかチェックするようになりました
  • 失敗が無視されていたテストをいくつか修正しました
  • --force-local を使うことでテストが劇的にスピードアップするようになりました
  • shutdown と waitready コマンドを使うようになりました

アップグレードの注意

  • limits.memory で使用する単位は kB, MB, GB, TB, EB, PB になりました。古い単位は初回の LXD 起動時に一度だけ更新されます。
  • migrate REST API の呼び出しは secret に対する wss URL でなく、ソースオペレーションに対する https URL を使うようになりました。これは仕様に合わせるための変更です。

試用環境

この新しい LXD のリリースは、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.24 リリースのお知らせ

8th of December 2015

このリリースの主な変更点

  • macvlan ネットワークインターフェースをサポートしました
  • 物理ネットワークインターフェースをサポートしました
  • s390x 上でのビルドをサポートしました
  • copy/move 時に、スナップショットも元のコンテナと同時に転送されるようになりました
  • limits.cpu のための CPU スケジューラを実装しました
  • "lxc config unset/set" がリモートサーバに対して動作するようになりました

バグ修正

  • "lxc list" の IP アドレスの表示方法を改良しました
  • ネストしたコンテナ内の apparmor の扱いに関する修正を行いました
  • デバイスのホットプラグの間に起こる色々なハングアップと不具合の修正を行いました
  • スナップショットからのイメージの publish で、毎回全く同じ出力を生成するようになりました
  • スナップショットの publish に関する修正を行いました
  • 代替の gettext 実装への切り替えを行い、翻訳レイヤーの修正を行いました。
  • UUID の実装をこれまでとは違う別の実装に切り替えました
  • migratable プロファイルを削除しました (現時点の CRIU は標準的なコンテナをマイグレーションできます)
  • ディスクをコンテナ内にマウントする際、必要なディレクトリがない場合は作成するようにしました
  • イメージの作成を直列化しました (全体的な負荷の減少のため)
  • 色々な ZFS 関係のバグを修正しました (カーネルモジュールがない場合にロードする、削除のリトライ、マウントの扱いの改良)
  • よりシンプルに、かつ信頼性が向上するように、完全に LXC コンテナドライバを作りなおしました
  • volatile なキーがプロファイルに設定されないようにしました
  • 古くなった volatile キーを自動的にクリーンアップするようにしました
  • 名前のない (ランダムに名付けられた) コンテナの起動に関する修正を行いました

アップグレード時の注意

  • 古い lxc クライアントを新しいサーバに対して実行するとハングアップすることがあります。必ずクライアントも更新してください
  • limits.cpus は limits.cpu になりました。最初の LXD の起動時に変換されます

試用環境

この新しい LXD のリリースは、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.23 リリースのお知らせ

24th of November 2015

このリリースの主な変更点

  • LXD を新たにインストールするときに、ストレージ、ネットワーク、パスワードのセットアップの助けとなるように、新たに "lxd init" コマンドが使えるようになりました
  • ログメッセージがイベント API 経由で送出されるようになりました
  • 新たにコンテナ API と "lxc info" からプロセス数を取得できるようになりました
  • Windows でカラーでコンソールを表示できるようになりました
  • (API の) operations の処理を書き換えました。変更ごとのイベントと、ダウンロードの状態が含まれるようになりました
  • "lxc image import" コマンドで、HTTP ヘッダ経由で LXD イメージの広告を行う https ウェブサーバへの URL を指定できるようになりました
  • LXD が提供する最小限の HTTP プロキシが更に軽量となるように書きなおされました

バグ修正

  • "lxc config get <server-config-key>" が期待通りに動くようになりました
  • lxd-images: イメージのインポート時のメモリ消費量がさらに少なくなりました
  • events API 経由のログエントリがより読みやすくなりました
  • "lxc monitor" コマンドのイベントフィルタリングが正しく動作するようになりました
  • コンテナのアーキテクチャが正しく追跡されるようになりました
  • publish されたコンテナが常にイメージ中にメタデータを持つことを LXD が保証するようになりました
  • コンテナのコピー時に、デバイスと設定が正しくコピーされるようになりました
  • イメージのインポートが失敗した際に適切なエラーメッセージが表示されるようになりました
  • "lxc launch" の失敗時、"lxc info --show-log" の使用を提案するようになりました

アップグレード時の注意

operations API のユーザは、新しい操作コードに適合するように、コードをアップデートする必要があるでしょう。 新しい実装は仕様に準拠するようになりました。これは、すべての操作クエリは、常に非同期応答にラップされた、操作特有のプロパティをメタデータ内に持つ、完全な操作オブジェクトを返すということです。

"lxc" クライアントは可能な限り後方互換性を保つように更新されました。

試用環境

この新しい LXD のリリースは、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.22 リリースのお知らせ

10th of November 2015

このリリースの主な変更点

  • 停止前にコンテナをフリーズするようにしました (fork bombs 対策に役立ちます)
  • イメージを圧縮するアルゴリズムが設定できるようになりました (圧縮しないことも可能です)
  • リモートイメージをダウンロードする際に HTTP プロキシが使えるようになりました
  • イベントインターフェースの初期実装を行い、それを使う最低限のクライアントを実装しました (lxc monitor)

バグ修正

  • 2 つ目の LXD デーモンを起動したときに、すでに起動中の LXD のソケットを消去しないようにしました
  • リモートの追加が失敗したとき、キャッシュした証明書をクリーンアップするようになりました
  • パブリックなエンドポイントと通信を行う場合には、LXD はクライアント証明書が不要になりました
  • Checkpoint/restore とコンテナの起動の際のエラーメッセージとデバッグメッセージをわかりやすくしました
  • コンテナ起動時の競合の問題を修正しました
  • ときおり起こるハングアップを防ぐため、busybox のテストイメージを更新しました
  • lvm-setup: 古い Ubuntu のリリースでも動作するように更新しました
  • bz2 で圧縮されたイメージの展開の問題を修正しました
  • ファイルディスクリプタのリークの問題をいくつか修正しました
  • LXD が開始するたびに余計なマウントが作成されるのを防ぐため、シェアードマウントの扱いを修正しました
  • lxd-images: リリースストリームにイメージが見つからない場合は、デイリーストリームにフォールバックするようにしました
  • コンテナのコピーの際の uid/gid のマッピングの問題を修正しました
  • 無効な LXC 設定キーで LXD がハングアップする問題を修正しました

アップグレードの注意

この LXD のバージョンでは、イメージ API の実装の問題を修正しました。この結果、古いサーバに対する操作や古いクライアントを使った操作の中には失敗するものもあるかもしれません。

試用環境

この新しい LXD のリリースは、すでに私たちの デモサービス で利用できます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.21 リリースのお知らせ

27th of October 2015 このリリースの主な変更点は以下の通りです。

  • Windows 上でクライアントをビルドできるようになりました
  • LVM ボリュームのデフォルトサイズが 10GB に減少しました
  • クライアントでコマンドのエイリアスを設定できるようになりました
  • "lxc info" コマンドがサーバの情報も出力するようになりました
  • Btrfs ストレージ上でネストした LXD が使えるようになりました

加えて、

  • 様々なストレージバックエンドの修正
  • より良いエラーの取り扱いと報告
  • 多数のバグフィックス (リリース時点での既知のバグはなくなりました)

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.20 リリースのお知らせ

14th of October 2015 このリリースの主な変更点は以下の通りです。

  • コンテナの再起動は stop+start として実装されました (すべての設定がリロードされます)
  • --config/-c を使って起動時に設定 key=value を与えられるようになりました
  • コンテナを一時的に停止させるために新しく "pause" コマンドが使えるようになりました
  • デフォルトではキャッシュしたイメージはプライベートとなります
  • リモートのコンテナをローカルのイメージストアに publish できるようになりました
  • キャラクタデバイス、ブロックデバイスをコンテナに追加できるようになりました
  • イメージのリストでイメージサイズの確認ができるようになりました

加えて、

  • 様々なストレージバックエンドの修正
  • より良いエラーの取り扱いと報告
  • テストの改良
  • 多数のバグフィックス (リリース時点での既知のバグはなくなりました)

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.19 リリースのお知らせ

25th of September 2015

このリリースの主な変更点は以下の通りです。

  • ZFS をサポートしました
  • コンテナのネストをサポートしました
  • stdin から読み込む際に複数行の設定キーを指定できるようになりました (値として "-" を使います)
  • コンテナの一時的なコピーを作れるようになりました (-e/--ephemeral フラグ)
  • パブリックな読み取り専用のサーバを自動で検出するようになりました (もう --public は不要です)
  • lxd-images が既存のイメージをアップデートできるようになりました (--sync フラグを使います)
  • (edit コマンドを使って) イメージのパブリック指定の設定と解除が行えるようになりました

加えて、

  • テストスイートを完全に再構築しました
  • Windows クライアントの準備のためにリファクタリングをいくつか行いました
  • ドキュメントと仕様を更新しました
  • 多数のバグフィックスを行いました (リリース時点での既知のバグはなくなりました)

過去のリリースの API 実装の問題により、古いコマンドラインクライアントでは、LXD 0.19 のイメージストアの操作が失敗することに注意してください。このような場合は 0.19 へアップグレードする必要があります。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.18 リリースのお知らせ

15th of September 2015 このリリースの主な変更点は以下の通りです。

  • lxc: 新たに --force-local オプションを追加しました
  • lxc: ファイルの push/pull の際に stdin/stdout が使えるようになりました
  • lxc: 翻訳テンプレートを変更しました
  • lxd/core: 特権コンテナのイメージ作成の問題を修正しました
  • lxd/core: コンテナごとの apparmor プロファイルを実装しました
  • lxd/core: コンテナごとの seccomp プロファイルを実装しました
  • lxd/core: exit 時のソケットアクティベーションの問題を修正しました
  • lxd/core: ネストした LXD のサポートを追加しました
  • lxd/btrfs: btrfs におけるシェアードマウント検出の問題を修正しました
  • lxd: 新たに "shutdown" サブコマンドを実装しました
  • lxd: 新たに "activateifneeded" サブコマンドを実装しました
  • scripts: LVM ストレージをセットアップおよび削除するスクリプトを追加しました
  • 多数のバグ修正と、テストなどの改良を行いました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.17 リリースのお知らせ

1st of September 2015 このリリースの主な変更点は以下の通りです。

  • lxc: 新たに "lxc file edit" コマンドを追加しました
  • lxc: パブリックなリモートホストのサポートを追加しました
  • lxc: リモートホストの IPv6 アドレスが追加できるようになりました
  • lxd/core: Go 1.5 でのビルドの問題を修正しました
  • lxd/core: スナップショットのリネームができるようになりました
  • lxd/core: コンテナに対する REST API に新たに /logs を追加しました
  • lxd/core: ストレージバックエンド名とバージョンをエクスポートするようになりました
  • lxd/btrfs: 再帰的なサブボリュームのスナップショットと消去をサポートしました
  • lxd/lvm: スナップショットのサポートを追加しました
  • lxd/lvm: コンテナのコピーのサポートを追加しました
  • lxd/lvm: コンテナのリネームのサポートを追加しました
  • lxd/lvm: プールが使用中の場合は LVM 設定の変更を許可しなくなりました
  • lxd/lvm: 仕様に LVM の設定キーを追加しました
  • lxd-images: "lxd images import lxc" コマンドは廃止になりました
  • lxd-images: マニフェストの URL を表示するようになりました
  • lxd-images: Ubuntu イメージの "releases" ストリームをデフォルトにしました
  • vagrant: vmware での起動をサポートしました
  • 多数のバグ修正と、テストなどの改良を行いました

このリリース以降、"lxd-images import lxc" コマンドの使用は廃止となりました。代わりにリモートサーバとして images.linuxcontainers.org を使用してください。

例えば、今までは:

lxd-images import lxc centos 7 amd64 --alias centos
lxc launch centos my-container

として実行していた処理は、以下のようになりました:

lxc remote add images images.linuxcontainers.org    # one-time setup
lxc launch images:centos/7/amd64 my-container

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.16 リリースのお知らせ

18th of August 2015 このリリースの主な変更点は以下の通りです。

  • コンテナの自動起動のサポートを追加しました。自動起動時の起動間隔と起動順のサポートを含みます
  • ローカル (unix socket) からリモートデーモン (https) へのコンテナとイメージのコピーをサポートしました
  • 異なる uid/gid の割り当てを持つホスト間で非特権コンテナの転送を行う際に、id の再マッピングを行うようになりました
  • 既存のコンテナで、id のマッピングが変わった際と特権・非特権の変更の際に、id の再マッピングを行うようになりました
  • EDITOR 環境変数を正しく扱うようになりました
  • リモートイメージからのコンテナの起動時に、キャッシュされたイメージを expire するようになりました
  • lxd-images に新たに --public フラグを追加しました
  • スナップショット時に --stateful 指定ができるようになりました
  • 多数のバグフィックスと、パフォーマンスとテストの改良を行いました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.15 リリースのお知らせ 2015 年 8 月 4 日

4th of August 2015 このリリースの主な変更点は以下の通りです。

  • ストレージとネットワークのホットプラグ機能を追加しました
  • ロギングの改良を行いました
  • LVM と btrfs バックエンドの改良を行いました
  • /dev/lxd が gccgo でも動作するようになりました
  • コンテナ内部の環境変数を設定するための新しい environment.* という設定を追加しました
  • init と launch コマンドでコンテナ名を表示するようになりました
  • lxd-images コマンドが扱うイメージのデフォルトが Ubuntu 14.04 LTS になりました
  • --tcp オプションは設定 core.https_address で置き換えられました
  • LVM と btrfs サポートの改良を行いました
  • LXD のスピードテストをいくつか追加しました
  • LXD クライアントのみをビルドする "make client" ターゲットを Makefile に追加しました (MacOS Xで使用します)
  • lxdbr0 ブリッジ用のスクリプトと http プロキシコードを新たに追加しました
  • ストレージの内部構造を変更しました
  • コンテナの内部構造を変更しました
  • データベースの内部構造を変更しました
  • 色々なテストの改良を行いました
  • 多数のバグフィックスと小さな改良を行いました

このリリースでコンテナが /var/lib/lxd/lxc から /var/lib/lxd/containers へ、スナップショットは /var/lib/lxd/lxc/\<name>/snapshots から /var/lib/lxd/snapshots/\<name> へ移動しました。このため、LXD は次回の起動時にすべてのコンテナを停止し、すべてのコンテナを新しい場所に移動させたあとにコンテナを起動します。

--tcp デーモンオプションは、ユーザが LXD がバインドするアドレスとポートを変更するための core.https_address オプションに置き換えられました。この変更はすぐに適用されます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.14 リリースのお知らせ

21st of July 2015 このリリースの主な変更点は以下の通りです。

  • コマンドラインのヘルプを改良しました
  • LVM バックエンドを改良しました (コンテナが実行されている間だけストレージを mount/umount できます)
  • 証明書を扱う部分を作りなおしました (ユーザインターフェース、生成と再帰問い合わせのサポート)
  • 不正なイメージの原因となる publish のバグを修正しました
  • コンテナのコピー、マイグレーションの IPv6 サポートの修正を行いました
  • ロギングのコードが新しくなりました (syslog サポート、ログファイルのサポートとログレベル)
  • "split" (分割された) イメージ (メタデータとrootfsが分離している) のサポートのための実装を行いました
  • lxd-images にダウンロードの進捗をトラッキングする機能を追加しました
  • アーキテクチャの不整合を検出して報告するようになりました
  • サーバ間で直接イメージのコピーを行う機能がサポートされました
  • /dev/lxd が meta-data インターフェースをサポートしました
  • lxd-images を使って Ubuntu Cloud イメージがインポートできるようになりました
  • その他、コードの改良を行いました (golint、リファクタリング、圧縮の扱い、テストなど)

このリリースは公式の Ubuntu Cloud イメージをサポートする最初の LXD のリリースです。現時点では、current の開発リリース (wily) のみ利用できます。しかし、すべてのサポートされた Ubuntu のリリースのイメージがこれから数日間で使えるようになるはずです。

これらのイメージをあなたの LXD イメージストアにインポートするには、以下のように実行します。

lxd-images import ubuntu --alias ubuntu-cloud

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.13 リリースのお知らせ

7th of July 2015

このリリースの主な変更点は以下の通りです。

  • ストレージバックエンドとして LVM thin pool のサポートを追加しました
  • 基本的な bash 補完を追加しました
  • コンテナをイメージに変換する "publish" コマンドを実装しました
  • ファイルの push/pull の信頼性を改良しました
  • 一度に複数のコンテナを start/stop/restart/delete できるようにしました
  • gccgo を使ったビルドの修正を行いました (現時点ではこの場合には /dev/lxd を無効にします)
  • コンテナのコピー時の btrfs のパフォーマンスを改良しました (訳注: btrfs の場合は rsync でなくスナップショットでコピーを作成します)
  • 他にも多数のバグ修正、細かな改良、クリーンアップを行っています

このリリースは Linux 以外のオペレーティングシステム上でクライアントがビルドできる LXD の最初のリリースです。今のところ、Mac OS X では動作確認がされています。Windows では動かないことが確認されています。他の Unix では動く可能性が高いですが、テストはされていません。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.12 リリースのお知らせ

23rd of June 2015

このリリースの主な変更点は以下の通りです。

  • /dev/lxd を実装しました
  • exec 時の初期コンソールサイズの修正を行いました
  • マイグレーションのメモリ消費量を減少させました
  • API でユーザが読める形式の日付フォーマットを使うようになりました
  • サーバの設定キーを設定しなくても良くなりました
  • exec の様々な競合状態を修正しました
  • 純粋な Go 言語による gettext 実装を使用するように変更しました
  • すべての応答で正しい Content-Type をセットするようにしました
  • info でホストの veth デバイスの情報を表示するようになりました
  • より良い Snappy ubuntu サポートのためにいくつか変更を行いました
  • 様々なその他のバグフィックスを行いました
  • ヘルプメッセージの改良を行いました
  • テストの改良を行いました
  • ドイツ語の翻訳を追加しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.11 リリースのお知らせ

9th of June 2015 このリリースの主な変更点は以下の通りです。

  • イメージ内のテンプレートファイルをサポートしました
  • systemd の socket activation をサポートしました
  • スタートアップ時のコンテナのクリーンシャットダウンと再起動をサポートしました
  • "lxc image show" コマンドの実装をしました
  • exec での SIGWINCH シグナル (ターミナルのリサイズイベント) のサポートを実装しました
  • すべての設定キーを仕様に沿ったものにしました
  • "lxc image edit" の修正を行いました
  • 外部との接続性がなくてもすべてのテストが実行できるようになりました
  • テストの出力をより読みやすいように改良しました
  • その他のバグフィックスを行いました

注意: サーバパスワードを設定するためのキーは core.trust_password になりました。 LXD 0.11 の最初の起動時に、古いバージョンでサポートされていた名前はすべて正式なキー名に変換されます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.10 リリースのお知らせ

26th of May 2015

このリリースの主な変更点は以下の通りです。

  • スナップショットとリストアの実装を行いました
  • "lxc remote add" コマンドに新しいオプションである --accept-certificate を追加しました
  • "lxc remote add" コマンドに新しいオプションである --password を追加しました
  • "lxc profile device show" と " lxc config device show" コマンドを追加しました
  • "lxc config show" と "lxc config set" コマンドがサーバの設定に使えるようになりました
  • "lxc profile edit" と "lxc config edit" コマンドが標準入力から設定を受け取れるようになりました
  • /1.0/images/aliases API に recursion のサポートを追加しました
  • /1.0/containers/{name}/snapshots API に recursion のサポートを追加しました
  • コマンドラインクライアントは go-lxc に依存しなくなりました
  • uid/gid の割り当てと変換を実装しなおしました
  • ヘルプと使い方の表示の改良を行いました
  • "lxc list" コマンドの表示の改良を行いました
  • "lxc profile show" と "lxc config show" コマンドの改良を行いました
  • デバッグメッセージの改良を行いました
  • /1.0 へのアクセスで LXD のバージョンがエクスポートされるようになりました
  • README の改良を行いました
  • SSL 証明書の Expire が 10 年後になりました
  • 色々なテストの改良とバグの修正を行いました

Downloads

このリリースの tarball は ダウンロードページ から取得できます。

LXC 0.9 リリースのお知らせ

12th of May 2015 このリリースの主な変更点は以下の通りです。

  • メモリとファイルディスクリプタのリークを修正しました (それに対するテストも追加しました)
  • setfacl が失敗したときに chmod にフォールバックするようになりました (ACL サポートのないファイルシステム向け)
  • コンテナのロギングの修正を行い、lxc info コマンド経由でログが見れるようになりました
  • 特権コンテナに対する正しい uid/gid マッピングをセットアップするようになりました
  • "lxc config edit" と "lxc profile edit" コマンドで無効な設定を行った時に報告するようになりました
  • 初めて lxc コマンドを実行した際に分かりやすい出力を行うようになりました。また、プロファイルと設定の例を改良しました
  • "lxc config profile *" コマンドを "lxc profile *" コマンドに変更しました (古いコマンドもまだ有効です)
  • より信頼できるデータベースの扱いを行うようになりました
  • コピーしたコンテナは新しい MAC アドレスを取得するようになりました
  • コンテナ環境内で USER 環境変数が設定されるようになりました (exec 時)
  • コンテナのビルドに使われるイメージを追跡し、それを使ってコピーとマイグレーションの最適化を行うようになりました
  • データベースのテストを改良しました
  • exec 時の pts デバイスの所有権に関する問題を修正しました
  • raw.lxc が早く追加されすぎていたのを修正しました (lxc.network.script などの実行の失敗を引き起こしていました)
  • lxc と lxd の両方で引数のパースを改良しました
  • コンテナとネットワークのリスト表示のパフォーマンスを改良しました
  • 信頼する証明書のデータベース中で証明書の名前が衝突する問題を修正しました

Downloads

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.8.1 リリースのお知らせ

29th of April 2015

0.8 で生じたバグの修正のみを目的とするリリースです。

  • 全てのアーキテクチャでのビルドの問題を修正しました
  • go-protobuf リポジトリの URL を変更しました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.8 リリースのお知らせ

28th of April 2015 このリリースの主な変更点は以下の通りです。

  • lxc file push の uid/gid の問題を修正しました
  • PROXY 環境変数を使うようになりました
  • データベースのロック問題を修正しました
  • デバッグオプションを更に追加しました
  • 一時的なコンテナの様々な問題を修正しました
  • スナップショットから新しくコンテナを作成する際の問題を修正しました
  • btrfs のサブボリュームが使用できる場合は、サブボリュームを使ってより速くコンテナを作れるようになりました

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXC 0.7 リリースのお知らせ

14th of April 2015 このリリースの主な変更点は以下の通りです。

  • コンテナがプライベートイメージから起動できるようになりました
  • 一時的 (Ephemeral) なコンテナをサポートしました
  • デバッグの改良を行いました
  • 一部のドキュメントを更新しました
  • いくつか小さい修正を行いました

このリリースはまだ LXD 開発の初期であり、現時点の LXD はまだプロダクション用途向きではないことに注意してください。そしてサポートはありません。(報告されたバグ修正やパッチは次のリリースに含まれる予定です)

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.6 リリースのお知らせ

7th of April 2015 このリリースの主な変更点は以下の通りです。

  • Vagrant の設定ファイルが追加されました
  • コンテナの MAC アドレスが固定になりました
  • リモートサーバの扱いに関する様々な修正を行いました
  • 再帰的な問い合わせが可能になりました (イメージサーバに対する劇的なスピードの改善)
  • TLS において強固な暗号のみを使うように設定しました
  • イメージのインポート時にエイリアスを設定できるようになりました
  • テストの範囲を改良しました
  • クライアントのエラーメッセージを改良しました
  • 特権コンテナの扱いに関する修正を行いました
  • LXD が powerpc 上でビルドできるようになりました
  • 多数のバグ修正と調整を行いました

このリリースはまだ LXD 開発の初期であり、現時点の LXD はまだプロダクション用途向きではないことに注意してください。そしてサポートはありません。(報告されたバグ修正やパッチは次のリリースに含まれる予定です)

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.5 リリースのお知らせ

24th of March 2015

このリリースの主な変更点は以下の通りです。

  • IPv6 でリモートサーバを扱えるようになりました
  • リモートサーバがシステムが信頼する証明書を持つようになった場合のチェックを行うようにしました
  • "lxc image copy" コマンドを実装しました
  • リモートの扱いを改良しました (デフォルトの設定、https:// と unix:// のサポート、多数の使いやすいエイリアス)
  • key/value の保存に対する API の一貫性を確保しました (常にディレクトリとしてエクスポートするようになりました)
  • リモートのイメージが長いハッシュでも短いハッシュでも起動できるようになりました
  • リモートのイメージのプロパティがローカルのキャッシュにきちんとミラーされるようになりました
  • 多数のデータベースのロック問題が解決されました

このリリースはまだ LXD 開発の初期であり、現時点の LXD はまだプロダクション用途向きではないことに注意してください。そしてサポートはありません。(報告されたバグ修正やパッチは次のリリースに含まれる予定です)

現時点で、ほとんどの LXD の機能の主要なものが提供されるようになりました。しかし、まだ多数の特定のオプションが実装されていません (仕様と一致していません)。今後の数リリースのうちで、予定しているオプションのすべてがサポートされるように大きく進歩する予定です。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.4 リリースのお知らせ

17th of March 2015

このリリースの主な変更点は以下の通りです。

  • リモートにあるイメージからのコンテナの起動がサポートされました
  • ホスト間のコンテナのコピー/移動がサポートされました
  • コマンドラインが改良されました (リスト、エイリアス、プロファイル、短いハッシュ、など)
  • エラーログが改良されました
  • 仕様によりきっちり合うように API が修正されました
  • 多数のバグフィックス

このリリースはまだ LXD 開発の初期であり、現時点の LXD はまだプロダクション用途向きではないことに注意してください。そしてサポートはありません。(報告されたバグ修正やパッチは次のリリースに含まれる予定です)

現時点で、ほとんどの LXD の機能の主要なものが提供されるようになりました。しかし、まだ多数の特定のオプションが実装されていません (仕様と一致していません)。今後の数リリースのうちで、予定しているオプションのすべてがサポートされるように大きく進歩する予定です。

Downloads

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.3 リリースのお知らせ

10th of March 2015 このリリースでの主な変更点は以下の通りです。

  • lxd:

    • exec を作りなおしました。インタラクティブモードとノン・インタラクティブモードを分離し、エスケープシーケンスを適切にサポートするようになりました
    • イメージの取り扱いを改良しました。新たに圧縮アルゴリズムを追加し、イメージのエクスポートをサポートしました
    • ライブマイグレーションの初期サポート (特別な設定をコンテナに行う必要があります)
    • コンテナの設定とプロファイルの初期サポート
      • ディスクとネットワークインターフェースのサポート
      • プロファイルの作成・削除・割り当てのサポート
    • 特に指定されない限り全ての新しいコンテナに適用される "default" プロファイルを導入しました
  • lxc:

    • 色々な "list" コマンドのユーザ体験の改良を行いました
    • info コマンドを改良しました。PID と IP アドレスが表示されるようになりました
    • image info コマンドを実装しました。イメージのプロパティとエイリアスを表示します
    • LXD に対する翻訳例として、初期の部分的なフランス語翻訳を行いました
    • イメージとプロファイルに対する "edit" コマンドをサポートしました
  • lxd-images:
    • 最小の busybox イメージの作成をサポートするようになりました
    • images.linuxcontainers.org からイメージをインポートする際の広範囲に対する改良を行いました。もう再パッケージングは不要です。
    • Python 3.2 でも動作するようになりました
  • テストスイート :
    • コンテナの設定、プロファイル、デバイス、マイグレーション、コマンド実行(exec)、データベースに対するテストを追加しました
    • 最小の busybox イメージを実行して、数秒で実行するようになりました
  • 多数のバグフィックスを行いました

このリリースはまだ LXD 開発の初期であり、現時点の LXD はまだプロダクション用途向きではないことに注意してください。そしてサポートはありません。(報告されたバグ修正やパッチは次のリリースに含まれる予定です)

現時点で、ほとんどの LXD の機能の主要なものが提供されるようになりました。しかし、まだ多数の特定のオプションが実装されていません (仕様と一致していません)。今後の数リリースのうちで、予定しているオプションのすべてがサポートされるように大きく進歩する予定です。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.2 リリースのお知らせ

27th of February 2015 このリリースでの主な変更点は以下の通りです。

  • ビルトインイメージストアの最初のバージョン
  • 全てのコンテナはイメージから作らなければならなくなりました
  • イメージは提供の "lxd-images" ツールを使って LXD にインポートできます
  • イメージを見つけやすくするためのイメージのエイリアスを設定できます
  • データベースバックエンド (全ての LXD データは SQLite のデータベースに保存されるようになりました)
  • コンテナ設定の初期段階 (APIの一部のみ)
  • gcc-go 経由の多数のアーキテクチャ向けのビルドのサポート (全ての依存関係に互換性があるとは限りません)
  • exec のメカニズムの再構築
  • 多数のバグフィックス

このリリースはまだ LXD 開発の初期であり、現時点の LXD はまだプロダクション用途向きではないことに注意してください。そしてサポートはありません。(報告されたバグ修正やパッチは次のリリースに含まれる予定です)

我々はまだコンテナのマイグレーション、適切にコンテナを設定できるようにすること、stable な REST API の開発に精力的に取り組んでいます。

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。

LXD 0.1 リリースのお知らせ

13th of February 2015 これは LXD の初めてのリリースです。

この LXD の初めてのリリースでは、以下が可能です。

  • コンテナの一覧
  • Ubuntu 14.04 LTS amd64 コンテナに対する create、destroy、start、stop、execute コマンドの実行
  • コンテナの外と中の間でのファイルの転送
  • lxc コマンドラインツールを使った複数の LXD ホストの管理
  • LXD REST API の試験的な使用

他のコンテナイメージ、コンテナマイグレーション、コンテナの設定とプロファイル、Stable な REST API はこの後のリリースで提供予定です。

このリリースは最初の開発スナップショットであり、プロダクション用途向きではなく、サポートもありません。(報告されたバグ修正やパッチは次のリリースに含まれる予定です)

ダウンロード

このリリースの tarball は ダウンロードページ から取得できます。