https://www.gravatar.com/avatar/cee80559471f68b7a5134ac8f3e60187?s=240&d=mp

Date Huang

Intel 82599ES 10G 網卡啟用 PXE

最近在測試 CloneZilla EZIO 模式,想說自己有三台 server 閒置,那就拿來跑看看,結果沒想到有一張網卡沒有辦法 PXE 開機,所以只好研究下怎麼處理了。 Table of Contents <span class="ez-toc-title-toggle"><a class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle"

ZFS 使用的經驗

我透過 OpenMediaVault 搭配 OMV-zfs plugin 使用 zfs ,UI 能使用的功能依舊很少,所以大部分還是得用 CLI 控制 ZFS 本身,不過可以用 OMV UI 控制很多 file sharing 的設定就已經萬謝了。以下分享一些,使用 ZFS 以來的心得。

Patch Kolla via Template

Kolla 多少還是有一些不合需求的地方,我們可以透過 Kolla Template 的方式修改 Dockerfile ,不用直接硬修改 Kolla 本身,而是透過 Kolla 提供的 Plugin 安裝接口修正。

修改的同時可能需要一些 Jinja (Template Engine) 的一些知識,可以參考 Jinja 官網的文件,也需要 Dockerfile 的撰寫知識。

Kolla-Ansible Nova Ephemeral Storage on NFS

OpenStack 通常會有兩種儲存 VM 的方式,一個是直接在 Nova-Compute Node 上面的 /var/lib/nova/instances ,另外一種則是儲存在 Cinder。前者通常也不會真的直接儲存在 Node 上,而是會透過 Shared Storage 儲存,例如 NFS 等等。

但是因為 OpenStack 會有一些 Lock 機制,偏偏 NFS 不一定實作全部的 Lock 種類,所以會導致 Lock 失敗,進而製作 VM 也跟著失敗。

Nova 在新增 VM 或是複製 Image 的時候,會考慮處理程序處理的問題,所以會使用 Lock ,以確保沒有正確無誤。透過 oslo.concurrency 處理 Lock,底層透過 fasteners 呼叫 fcntl ,進而失敗。所以我們將 Lock 機制暫時取消掉。目前還無法確定取消掉之後會不會有其他問題存在。

OpenStack Rocky Cinder NFS Driver Issue

最近使用 Kolla-Ansible 部署 OpenStack Rocky on AArch64/ARM64 發生一些問題,這問題並不只是存在 ARM 上,而是因為發行版所維護的 QEMU 版本已經跟到了 commit ca749954b09b89e22cd69c4949fb7e689b057963 ,這個 commit 使用到了 F_OFD_SETLK, NFSv3 正好不支援這類型 lock 操作。

而這個修改,並沒有根據不同檔案系統不支援 F_OFD_SETLK 回退 F_SETLK 的操作,所以只要在現代 Linux 中編譯 QEMU,就會直接使用 F_OFD_SETLK ,而造成在 NFSv3 上無法使用 lock 進而導致失敗的現象。

而這問題也不單單只影響 Cinder-Volume,也間接影響 Nova-Compute,如果 VM 要掛載 Volume,而 Cinder 使用 NFS Driver,則會在 Nova-Compute 上也把 NFS 掛載上去給 QEMU 使用。