🐷

Proxmox VEのゲストマシンでローカルディスクのファイル共有Serverを作る

2023/12/27に公開

ファイル共有Server

ファイル共有ServerといえばSAMBA。
一般のご家庭ではSynologyやQNAPのNASを使っているかもしれません。
我が家でもNASは運用しているものの、それとは別でSAMBAを運用しています。
物理サーバを仮想化基盤に一新した物の、従来のSAMBAを利用したいためProxmox VE 上に建てたVMから直接接続したHDD認識させファイル共有させるメモ書きです。
今回は Proxmox VEのインストールやゲストマシンのインストール、Sambaの設定については取り扱いません。

環境

ホスト pve-manager/8.1.3
ゲスト Ubuntu Server22.04.3

まずはゲストマシンを作成しておきます。
ゲストマシンを作成したらゲストマシンのIDを覚えておきます。

ホスト側

ゲストマシンへSATAパススルーするための設定を入れます。
環境ごとに読み替えてください。

bash
# ls -l /dev/disk/by-id/
で出てきたフォーマット済み、使用中のHDDを特定してメモしておく

# qm set <Guest Machine ID> -sata0(SATAとか接続する方式を選ぶ) /dev/disk/by-id/ata-hogehoge
ゲストマシンのIDにどの方式でアタッチするかを指定して、上でメモしたHDDを選ぶ

これでパススルーする設定ができました。次はゲストマシンで認識させます。

ゲスト側

システムタブからゲストマシンのハードウェアを見ると
ハードディスク(sata0) /dev/disk/by-id/ata-hogehogeというハードディスクが認識されていると思います。
ココで認識されていれば成功です、あとはいつも通りマウントしてあげればよいです。

shell

$ mkdir /mnt/<MOUNTPOINTNAME>
$ sudo mount /dev/sdX /mnt/<MOUNTPOINTNAME>/ --types=ext4

$ cd /mnt/<MOUNTPOINTNAME>/

$ sudo blkid
マウントしたHDDのUUIDコピーしておく

$ sudo vim /etc/fstab
末尾に
UUID マウントポイント フォーマット オプション 0 0 のような方式で記載して起動時に読み込むようにする
$ sudo reboot
再起動してマウントできているか確認  

再起動後問題なく認識すれば成功です。
Sambaの設定を入れていれば他マシンから共有先を読めれば成功。

まとめ

数個のコマンドで良い感じにゲストマシンへマウントすることができました。
GUIから簡単にできないのが辛いところですがこれでsambaマシンを作れました。
データセンターから構築したsambaを追加することもできるので活用法が増えるかもしれませんね。


pve-docs/qm1

--sata[n] [file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]
Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the import-from parameter to import from an existing volume.

Discussion