MukenVault

自前 KVM / libvirt / Proxmox パートナー向けガイド

cloud VPS (KAGOYA, Vultr, AWS, GCP 等) ではなく、ご自身で KVM / libvirt / Proxmox 上で VM を立てて MukenVault Entry を 運用される partner 向けの追加設定ガイドです。

0. このガイドが必要なケース

以下のいずれかに該当する場合、本ガイドの設定が必要です:

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 環境固有の識別子を取得します:

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 設定が不十分です:

上記が解消されたら、通常の 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 を 必ず違う値で設定してください。同じ値だと:


関連リンク