Linux中國

LXD 2.15 中的存儲管理

長久以來 LXD 已經支持多種存儲驅動。用戶可以在 zfs、btrfs、lvm 或純目錄存儲池之間進行選擇,但他們只能使用單個存儲池。一個被頻繁被提到的需求是不僅支持單個存儲池,還支持多個存儲池。這樣,用戶可以維護一個由 SSD 支持的 zfs 存儲池用於 I/O 密集型容器,另一個簡單的基於目錄的存儲池用於其他容器。幸運的是,現在這是可能的,因為 LXD 在幾個版本後有了自己的存儲管理 API。

創建存儲池

新安裝 LXD 沒有定義任何存儲池。如果你運行 lxd init ,LXD 將提供為你創建一個存儲池。由 lxd init 創建的存儲池將是創建容器的默認存儲池。

asciicast

創建更多的存儲池

我們的客戶端工具使得創建額外的存儲池變得非常簡單。為了創建和管理新的存儲池,你可以使用 lxc storage 命令。所以如果你想在塊設備 /dev/sdb 上創建一個額外的 btrfs 存儲池,你只需使用 lxc storage create my-btrfs btrfs source=/dev/sdb。讓我們來看看:

asciicast

在默認存儲池上創建容器

如果你從全新安裝的 LXD 開始,並通過 lxd init 創建了一個存儲池,LXD 將使用此池作為默認存儲池。這意味著如果你執行 lxc launch images:ubuntu/xenial xen1,LXD 將為此存儲池上的容器的根文件系統創建一個存儲卷。在示例中,我們使用 my-first-zfs-pool 作為默認存儲池。

asciicast

在特定存儲池上創建容器

但是你也可以通過傳遞 -s 參數來告訴 lxc launchlxc init 在特定存儲池上創建一個容器。例如,如果要在 my-btrfs 存儲池上創建一個新的容器,你可以執行 lxc launch images:ubuntu/xenial xen-on-my-btrfs -s my-btrfs

asciicast

創建自定義存儲卷

如果你其中一個容器需要額外的空間存儲額外的數據,那麼新的存儲 API 將允許你創建可以連接到容器的存儲卷。只需要 lxc storage volume create my-btrfs my-custom-volume

asciicast

連接自定義卷到容器中

當然,這個功能是有用的,因為存儲 API 讓你把這些存儲卷連接到容器。要將存儲卷連接到容器,可以使用 lxc storage volume attach my-btrfs my-custom-volume xen1 data /opt/my/data

asciicast

在容器之間共享自定義存儲卷

默認情況下,LXD 將使連接的存儲卷由其所連接的容器寫入。這意味著它會將存儲卷的所有權更改為容器的 id 映射。但存儲卷也可以同時連接到多個容器。這對於在多個容器之間共享數據是非常好的。但是,這有一些限制。為了將存儲卷連接到多個容器,它們必須共享相同的 id 映射。讓我們創建一個額外的具有一個隔離的 id 映射的容器 xen-isolated。這意味著它的 id 映射在這個 LXD 實例中將是唯一的,因此沒有其他容器具有相同的id映射。將相同的存儲卷 my-custom-volume 連接到此容器現在將會失敗:

asciicast

但是我們讓 xen-isolatedxen1 有相同的映射,並把它重命名為 xen2 來反映這個變化。現在我們可以將 my-custom-volume 連接到 xen1xen2 而不會有問題:

asciicast

總結

存儲 API 是 LXD 非常強大的補充。它提供了一組基本功能,有助於在大規模使用容器時處理各種問題。這個簡短的介紹希望給你一個印象,你可以做什麼。將來會有更多介紹。

本篇文章最初在 Brauner 的博客中發布。

via: https://insights.ubuntu.com/2017/07/12/storage-management-in-lxd-2-15/

作者:Christian Brauner 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國