Proxmox VEの物理ディスクをOpenMediaVaultの仮想マシンと共有して読み書きする

nogajun
nogajun

VPSにnofuture.tvを移転したあと、自宅サーバーマシンは、ただのNASになってました。

ふと「仮想化基盤のProxmox VEに入れ替えて、その上でNASのOpenMediaVaultを動かせば、いろいろできていいかも?」と思いついたのでSSDとHDDを入れ替えてProxmox VEをインストールしました。

Proxmox VEをセットアップして仮想マシンにOpenMediaVaultをインストールするまでは、すぐに終わりましたが、VMのOpenMediaVaultからサーバー実機に接続されているHDDをマウントして読み書きするのは結構、手間がかかったのでその設定メモです。

Proxmox VE上での操作

Proxmox上でパーティションの作成とマウントする必要が無い場合は「仮想マシンに接続する」まで飛ばしてください。

パーティションの作成

買ったばかりのHDDなのでパーティションを作成していますが、パーティション作成が不要の場合は飛ばしてください。

Proxmoxにログインしたら、[データセンタ]ー→[ノード](自分のところではsonic)を選ぶと、ノードのメニューに[ディスク]があるので選択します。

サーバーに接続されているディスクが表示されるので、フォーマットしたいディスクを選んで、[GPTでディスクを初期化]を選ぶと初期化されます。

パーティションの作成

メモを取るためにやり直していると失敗する場合があったのですが、うまくいかない場合は[シェル]からcfdiskを使ってパーティションを作ってください。cfdiskは以下のコマンドで使えます。

# cfdisk /dev/(接続されてるディスク)

ディスクのマウント

フォーマットしたディスクのマウントは、同じ[ディスク]メニューの下にある[ディレクトリ]を選んで上にある[作成:ディレクトリ]ボタンを押します。

ディレクトリの作成

ディスクとファイルシステムを選んで、名前をつければパーティションが/mnt/pve以下に自分がつけた名前でマウントされます。

ディスクのフォーマット

仮想マシンに接続する

仮想マシンへの接続は、コマンドで設定する必要があるので、ここからはノードのメニューにある[シェル]に移動します。

シェルを開いたらqmコマンドでパーティションと仮想マシンを接続しますが、接続するためのHDDのディスクIDを調べます。ディスクIDの調べ方は簡単でls -la /dev/disk/by-id/でわかります。

# ls -la /dev/disk/by-id/
total 0
drwxr-xr-x 2 root root 360 Jan  9 17:37 .
drwxr-xr-x 6 root root 120 Jan  9 16:38 ..
(中略)
lrwxrwxrwx 1 root root  10 Jan  9 16:38 lvm-pv-uuid-3ZU8LW-d14q-VN6r-PoYR-K746-iyrK-3ktrgE -> ../../sda3
lrwxrwxrwx 1 root root   9 Jan  9 17:37 wwn-0x5000c500e62c245b -> ../../sdb
lrwxrwxrwx 1 root root  10 Jan  9 17:37 wwn-0x5000c500e62c245b-part1 -> ../../sdb1

wwn-0x5000c500e62c245b-part1というのがわかったのでメモしておきます。では、qmコマンドを使って仮想マシンにパーティションを接続します。qmコマンドは以下の形式になっています。

# qm set (仮想マシン番号) (-scsi番号/-virtio番号) /dev/disk/by-id/(パーティション) 

ということで、自分の場合は下のようになりました。

# qm set 100 -virtio1 /dev/disk/by-id/wwn-0x5000c500e62c245b-part1 
update VM 100: -virtio1 /dev/disk/by-id/wwn-0x5000c500e62c245b-part1

仮想マシンのメニュー[ハードウェア]に接続したパーティションが表示されればOKです。

OpenMediaVault上での操作

ここからはOpenMediaVaultの操作です。

ログインしたら、[ストレージ]→[ディスク]に移動するとデバイスが増えているはずです。

デバイスの確認

そのままでは使えないので同じ[ストレージ]の[ファイルシステム]からデバイスをマウントします。+ボタンを押すと「作成」と「マウント」があるのでマウントを選びます。

ディスクのマウント

マウントすれば[共有フォルダ]から共有フォルダを作成できるので、フォルダを作って好きな方法で共有してください。

Tips: Proxmox VEとディスクを共有したくない

ディスクをProxmoxと共有したくない場合、パフォーマンスを求めるなら、上の追記に書いたようにSATAカードを追加してPCI Passthroughでホストと仮想マシンのディスクを分ければ共有せずに済み、パフォーマンスも上がります。

方法は、PCI Passthroughの設定をして、仮想マシンのハードウェアからPCIデバイスで追加したSATAカードのコントローラーを指定すれば、仮想マシンからのみアクセスできます。

パフォーマンス上の理由ではなく単に分けたいだけなら、Proxmoxの「仮想マシンに接続する」の手順に書いてあるqmコマンドを使ってディスクを仮想マシンにマウントしてください。

マウントするディスクは、通常のLinuxのディスク追加と同じようにディスクのパーティションを切って、フォーマットする必要があります。そして永続的にマウントされるようにするなら、実機(Proxmox)側の/etc/fstabにマウントの設定を書く必要があります。

この記事が役に立ったらコーヒーをおごろう

下のリンクはBuy me a coffeeという投げ銭システムのリンクです。役に立ったと思ったら、ぜひ投げ銭をお願いします。