MukenVault
自前 KVM / libvirt / Proxmox パートナー向けガイド
cloud VPS (KAGOYA, Vultr, AWS, GCP 等) ではなく、ご自身で KVM / libvirt / Proxmox 上で VM を立てて MukenVault Entry を 運用される partner 向けの追加設定ガイドです。
0. このガイドが必要なケース
以下のいずれかに該当する場合、本ガイドの設定が必要です:
- partner box が自社内 / 自宅で運用する KVM / QEMU / libvirt VM
- Proxmox VE 上で立てた VM
- VMware / Hyper-V 等の他の hypervisor から KVM へ移行した VM
sudo dmidecode -s system-uuidの結果が空 (NONE) や全て同じ値
cloud VPS (KAGOYA / Vultr / AWS / GCP / さくら等) を利用される場合は 本ガイドの設定は不要です — hypervisor 側で per-VM の SMBIOS が 自動設定されます。
0.5. まず自動化スクリプトを試す (推奨)
手動で libvirt XML / Proxmox 設定を編集する前に、まず以下の 2 段で 確認 / 自動修正できます。多くのケースで本ページ §2 / §3 の手動編集は不要になります。
① partner box (guest VM) の中で、現状を確認:
curl -fsSL https://install.mukenvault.com/verify-smbios.sh | sudo bash
Tier 1 (product_uuid / product_serial / primary_mac)
を OK / FAIL で表示します。全 OK なら本ページの追加設定は不要、
そのまま quickstart §2 に進めます。
② FAIL が出た場合、hypervisor host で自動修正:
# libvirt の場合:
sudo curl -fsSL https://install.mukenvault.com/fix-libvirt-smbios.sh | \
sudo bash -s -- <vm-name>
# Proxmox の場合:
sudo curl -fsSL https://install.mukenvault.com/fix-proxmox-smbios.sh | \
sudo bash -s -- <vmid>
スクリプトは VM の現行 XML / config を /var/backups/mukenvault-*-smbios/
に退避してから、新しい UUID + serial を per-VM で生成し、VM を一度
stop → 設定適用 → start します (downtime 約 10-30 秒)。
実行後、guest VM 内でもう一度 verify-smbios.sh を実行し、
Tier 1 が全 OK になったことを確認してください。
自動化スクリプトが使えない hypervisor (VMware / Hyper-V / cloud-managed Proxmox 等) の場合は、§2 / §3 / §4 の手動設定を参照してください。
1. なぜ必要か (背景)
MukenVault Entry はライセンス認証および VM 複製検知のため、 SMBIOS (DMI) から partner 環境固有の識別子を取得します:
product_uuid— VM ごとに固有の UUIDproduct_serial— VM ごとの serialprimary_mac— default route NIC の MACboard_serial/chassis_serial(物理マシン / 設定済 VM のみ)
cloud provider が運用する hypervisor は VM を作成する際に これらの値を per-VM で割り当てます。一方、自前 KVM/QEMU を オプション指定なしで起動すると、SMBIOS 値が空 (NONE) や QEMU デフォルト値 (全 VM で同じ) になり、MukenVault が partner box を一意に識別できなくなります。
具体的には、setup.sh または heartbeat 時に以下のエラーが発生します:
[mukenvault] auth DNA collection failed (likely entropy shortage on this VM)
2. libvirt XML での設定例 (手動編集)
先に §0.5 の fix-libvirt-smbios.sh を試してください
— 大半のケースで自動修正されます。本節は自動化スクリプトが使えない場合や、
SMBIOS 値を完全に partner 側で制御したい場合の手順です。
libvirt (virsh / virt-manager) で VM を管理されている場合、
virsh edit <vm-name> で domain XML を編集し、
<os> セクションの直後に以下を追加してください:
<sysinfo type='smbios'>
<bios>
<entry name='vendor'>YourOrgName</entry>
</bios>
<system>
<entry name='manufacturer'>YourOrgName</entry>
<entry name='product'>MukenVaultPartnerVM</entry>
<entry name='version'>1.0</entry>
<entry name='serial'>PARTNER-VM-001</entry>
<entry name='uuid'>11111111-2222-3333-4444-555555555555</entry>
</system>
<baseBoard>
<entry name='manufacturer'>YourOrgName</entry>
<entry name='product'>MukenVaultBoard</entry>
<entry name='serial'>BOARD-VM-001</entry>
</baseBoard>
<chassis>
<entry name='manufacturer'>YourOrgName</entry>
<entry name='serial'>CHASSIS-VM-001</entry>
<entry name='asset'>AssetTag</entry>
</chassis>
</sysinfo>
加えて <os> セクション内の smbios mode='sysinfo' を有効にする必要があります:
<os>
... 既存設定 ...
<smbios mode='sysinfo'/>
</os>
さらに <domain> ルート要素直下の uuid も一致させてください:
<domain type='kvm'>
<name>mukenvault-partner</name>
<uuid>11111111-2222-3333-4444-555555555555</uuid>
...
</domain>
編集後、VM を停止 → start し直してください (virsh shutdown && virsh start)。
3. Proxmox VE での設定例 (手動編集)
先に §0.5 の fix-proxmox-smbios.sh を試してください
— base64 encode を自動でやって qm set まで実行します。
本節は cloud-managed Proxmox など qm が直接叩けない環境の手順です。
Proxmox の VM 設定ファイル /etc/pve/qemu-server/<VMID>.conf を編集:
smbios1: uuid=11111111-2222-3333-4444-555555555555,manufacturer=WW91ck9yZw==,product=TXVrZW5WYXVsdFBhcnRuZXJWTQ==,serial=UEFSVE5FUi1WTS0wMDE=,sku=VG9rZW4=,family=TXVrZW5WYXVsdA==,version=MS4w,base64=1
Proxmox は SMBIOS 値を base64 でエンコードして渡す必要があります
(base64=1 指定時)。生文字列を base64 化したものを設定してください。
例 (Linux シェルで生成):
printf 'YourOrgName' | base64
# 出力: WW91ck9yZ05hbWU=
または Proxmox Web UI: VM → Hardware → SMBIOS settings (type 1) → Edit から UUID と serial を設定。
4. QEMU を直接起動する場合
qemu-system-x86_64 をコマンドラインから起動される場合:
qemu-system-x86_64 -enable-kvm \
-uuid 11111111-2222-3333-4444-555555555555 \
-smbios type=1,manufacturer=YourOrgName,product=MukenVaultPartnerVM,version=1.0,serial=PARTNER-VM-001,uuid=11111111-2222-3333-4444-555555555555,sku=token,family=MukenVault \
-smbios type=2,manufacturer=YourOrgName,product=MukenVaultBoard,version=1.0,serial=BOARD-VM-001 \
-smbios type=3,manufacturer=YourOrgName,version=1.0,serial=CHASSIS-VM-001,asset=AssetTag \
-netdev user,id=net0,hostfwd=tcp::2222-:22 \
-device virtio-net-pci,netdev=net0,mac=52:54:00:aa:bb:cc \
...
重要: 同じ partner 環境で複数 VM を立てる場合、
各 VM で uuid, serial, mac を
必ず違う値にしてください (同じ値だと VM 複製と認識される可能性)。
5. 確認手順
VM を起動後、partner box にログインして自動化スクリプトを実行:
curl -fsSL https://install.mukenvault.com/verify-smbios.sh | sudo bash
Tier 1 (product_uuid / product_serial / primary_mac)
が全 OK で表示されれば設定完了です。FAIL が出た場合はスクリプトが具体的な
修復コマンドを案内します。
手動で個別に確認したい場合:
sudo dmidecode -s system-uuid
sudo cat /sys/class/dmi/id/product_uuid
sudo cat /sys/class/dmi/id/product_serial
sudo cat /sys/class/dmi/id/board_serial
sudo cat /sys/class/dmi/id/chassis_serial
ip route get 1 | grep -oP 'dev \K\S+' | head -1 | xargs -I{} cat /sys/class/net/{}/address
以下のいずれかが当てはまる場合、SMBIOS 設定が不十分です:
product_uuidが00000000-0000-0000-0000-000000000000や空product_serialがNONEやTo be filled by O.E.M.等の placeholderprimary_macが52:54:00:12:34:56(QEMU デフォルト)
上記が解消されたら、通常の partner journey (クイックスタート §2 環境チェック以降) に進んでください。
6. トラブルシューティング
setup.sh / heartbeat 時のエラー
auth DNA collection failed (likely entropy shortage on this VM)
が出る場合: §5 の確認手順を再実行し、product_uuid /
product_serial / primary_mac の 3 つが
全て有効な値になっていることを確認してください。
VM 複製疑いで license が停止された場合
VM を migrate / clone した結果、admin server が clone と
判定して license を suspend した場合、partner support
(support@mukenvault.com) までご連絡ください。
正規 migration であることを確認後、ops が
reinstate-license.sh で復旧します。
同じ HW で複数 VM を立てる場合
同 hypervisor で複数 partner box を運用される場合、
各 VM で SMBIOS の uuid + serial + mac を
必ず違う値で設定してください。同じ値だと:
- 2 VM が同じ machine_id として Keygen に登録される
- 後から activate した方が前の VM を上書きする
- auth DNA が VM 複製検知ロジックで CRITICAL 判定される可能性
関連リンク
- MukenVault Entry クイックスタート
- verify-smbios.sh — partner box 内で Tier 1+2 を診断
- fix-libvirt-smbios.sh — libvirt host で per-VM SMBIOS 自動設定
- fix-proxmox-smbios.sh — Proxmox host で per-VM SMBIOS 自動設定
- preflight.sh
- bootstrap.sh
- setup.sh
- libvirt SMBIOS documentation: https://libvirt.org/formatdomain.html#smbios-system-information