Support vAccel/vsock Integration for Cloud Hypervisor
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 76/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 静か
- 技術スタック
- go
調査の方向性
pkg/unikontainers/hypervisors/cloud_hypervisor.go から始めて isValidVSockAddress を見つけ、既存の Firecracker と QEMU の処理を比較します。vAccelType に vsock が設定され、示された Unix ソケットアドレスを使用する cloud-hypervisor リクエストが受け付けられ、提供された ctr コマンドが成功すれば、変更は完了です。
索引モデルが issue の本文から書いたものです。
説明
Current Behavior
vAccel (vsock) support is only wired up and validated for Firecracker and QEMU.
pkg/unikontainers/hypervisors/cloud_hypervisor.go already implements the Cloud Hypervisor VMM, but the vAccel/vsock config validation function (isValidVSockAddress) only accepts "firecracker" and "qemu" as valid hypervisor values when vAccelType == "vsock". Requesting Cloud Hypervisor with vAccel enabled is currently rejected/unsupported.
Why Cloud Hypervisor Fits the Existing Pattern
Cloud Hypervisor implements vsock the same way Firecracker does "mapping guest vsock traffic to a host-side Unix domain socket". This means it can follow the same integration approach already used for Firecracker, without needing a new transport mechanism.
What I've Done
I've implemented and locally tested a Cloud Hypervisor vsock validation path mirroring Firecracker's approach. Verification steps and result below.
Step 1: Install Cloud Hypervisor
Ensure the latest cloud-hypervisor static binary is installed on the host and configured with the necessary capabilities:
wget https://github.com/cloud-hypervisor/cloud-hypervisor/releases/download/v52.0/cloud-hypervisor-static
chmod +x cloud-hypervisor-static
sudo setcap cap_net_admin+ep ./cloud-hypervisor-static
sudo mv cloud-hypervisor-static /usr/local/bin/cloud-hypervisor
Step 2: Set Up Host-Side vAccel RPC Agent & Bridge
- Start the vAccel RPC agent on the host listening on TCP port
65500:export LD_LIBRARY_PATH=/path/to/vaccel/usr/lib/x86_64-linux-gnu export VACCEL_PLUGINS=/path/to/vaccel/usr/lib/x86_64-linux-gnu/libvaccel-noop.so export VACCEL_LOG_LEVEL=4 vaccel-rpc-agent -a tcp://127.0.0.1:65500 - Start
socatto bridge the host Unix socket file to the TCP port:socat UNIX-LISTEN:/tmp/vaccel.sock_2049,fork,mode=777 TCP4:127.0.0.1:65500
Step 3: Run the Test Container
Run the container using ctr, specifying cloud-hypervisor as the hypervisor and the Unix socket address for vAccel:
sudo ctr run --rm --runtime io.containerd.urunc.v2 \
--annotation com.urunc.unikernel.hypervisor="cloud-hypervisor" \
--annotation com.urunc.unikernel.vAccel="vsock" \
--annotation com.urunc.unikernel.RPCAddress="unix:///tmp/vaccel.sock_2049" \
harbor.nbfc.io/nubificus/ubuntu-vaccel-urunc-qemu:x86_64 \
vaccel-test-ch \
/usr/bin/classify /usr/share/vaccel/images/example.jpg 1
Step 4: Result Confirmed Working
The execution successfully offloaded the classification task to the host agent over vsock, producing the observed output:
2026.07.04-10:55:49.42 - <info> vAccel 0.7.1-51-499fc2f7
2026.07.04-10:55:49.43 - <info> Registered plugin rpc 0.2.1-10-3d4d748c
Initialized session with id: 1
classification tags: This is a dummy classification tag!
classification imagename: This is a dummy imgname!
- 主要言語
- Go
- スター
- 308
- フォーク
- 222
- 平均マージ
- 2日 12時間
- マージ済み PR(30日)
- 42
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
urunc-dev/urunc のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 2 日以内に返信
-
Containers handed over to runc cannot be started, killed or deleted when urunc runs without --root再び着手できるかも @Daksha1611 が 16 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
urunc-dev/urunc#1127 · コメント 4 件 ·
メンテナーはふだん 2 日以内に返信
-
urunc-deploy cleanup never labels the node, so the cleanup DaemonSet does not run対応中かも @Sarthak-Shreshtha01 が 18 日前に担当しました。 オープンbug K8s/Tools
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 2 日以内に返信
-
FreeBSD: docs update and rootfs detection対応中かも @yug105 が 13 日前に担当しました。 オープンdocumentation enhancement Storage
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
urunc-dev/urunc#1108 · コメント 6 件 ·
メンテナーはふだん 2 日以内に返信
-
Rumprun guests receive &, < and > as \u0026, \u003c and \u003e対応中かも @Sarthak-Shreshtha01 が 24 日前に担当しました。 オープンbug Guests
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
urunc-dev/urunc#1074 · コメント 4 件 ·
メンテナーはふだん 2 日以内に返信
urunc-dev/urunc の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
agent-butler-finding chore
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
jordansmall/spindrift#6318 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
Eyevinn/moqlivemock#166 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
JakeChampion/lang#14091 ·
メンテナーはふだん 1 日以内に返信
-
batcher: BAF send context leaks per batch対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
hyperledger/fabric-x-orderer#1409 ·
メンテナーはふだん 3 日以内に返信