さわらブログ

さわら(@xhiroga)の技術ブログ

ProxmoxでWebコンソールからストレージをマウントする(zfs, ext4)

TL;DR

Webコンソールからクラスターを選択し、Disks > ZFS または Disks > Directoryを選び、それぞれ Create: ZFS または Create: Directory で作成することができます。

動機

ターミナルからストレージをマウントしようとすると大変ですよね。パーティションは慎重にやらないといけないし、マウントするパスは迷うし、自動マウントの設定も必要だし...

ProxmoxではWebコンソールからストレージをマウントすることができます。

手順

いずれもクラスター内のメニューから作成できます。なお、DirectoryかZFSかによってマウントパスが違いました。

ZFS の作成

クラスター選択 > Disk > ZFS > Create: ZFS から作成できます。

Create: Directoryのファイルシステムの選択肢にはzfsが無いので注意です。

Create: ZFSを選択

Create: ZFS

ちなみに Kingston の2TB なので k2 という名前でマウントしています。Mount K2に引っ掛けたジョーク... 以降の手順も同様です。

作成時のOutputです。

The operation has completed successfully.
# /sbin/zpool create -o ashift=12 k2 /dev/nvme0n1p1
# /sbin/zfs set compression=on k2
# systemctl enable zfs-import@k2.service
Created symlink /etc/systemd/system/zfs-import.target.wants/zfs-import@k2.service -> /lib/systemd/system/zfs-import@.service.
TASK OK

作成後のWebコンソールと、ターミナルから見たパーティション・マウントパスです。

root@pve:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme1n1     259:0    0 931.5G  0 disk 
|-nvme1n1p1 259:1    0  1007K  0 part 
|-nvme1n1p2 259:2    0   512M  0 part 
`-nvme1n1p3 259:3    0   931G  0 part 
nvme0n1     259:4    0   1.8T  0 disk 
|-nvme0n1p1 259:5    0   1.8T  0 part 
`-nvme0n1p9 259:6    0     8M  0 part
root@pve:~# findmnt
TARGET                        SOURCE           FSTYPE     OPTIONS
/                             rpool/ROOT/pve-1 zfs        rw,relatime,xattr,noacl
|-/sys                        sysfs            sysfs      rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/security      securityfs       securityfs rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/cgroup            cgroup2          cgroup2    rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/pstore            pstore           pstore     rw,nosuid,nodev,noexec,relatime
| |-/sys/firmware/efi/efivars efivarfs         efivarfs   rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/bpf               none             bpf        rw,nosuid,nodev,noexec,relatime,mode=700
| |-/sys/kernel/debug         debugfs          debugfs    rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/tracing       tracefs          tracefs    rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/fuse/connections  fusectl          fusectl    rw,nosuid,nodev,noexec,relatime
| `-/sys/kernel/config        configfs         configfs   rw,nosuid,nodev,noexec,relatime
|-/proc                       proc             proc       rw,relatime
| `-/proc/sys/fs/binfmt_misc  systemd-1        autofs     rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=33881
|-/dev                        udev             devtmpfs   rw,nosuid,relatime,size=14284768k,nr_inodes=3571192,mode=755,inode64
| |-/dev/pts                  devpts           devpts     rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
| |-/dev/shm                  tmpfs            tmpfs      rw,nosuid,nodev,inode64
| |-/dev/hugepages            hugetlbfs        hugetlbfs  rw,relatime,pagesize=2M
| `-/dev/mqueue               mqueue           mqueue     rw,nosuid,nodev,noexec,relatime
|-/run                        tmpfs            tmpfs      rw,nosuid,nodev,noexec,relatime,size=2863444k,mode=755,inode64
| |-/run/lock                 tmpfs            tmpfs      rw,nosuid,nodev,noexec,relatime,size=5120k,inode64
| |-/run/rpc_pipefs           sunrpc           rpc_pipefs rw,relatime
| `-/run/user/0               tmpfs            tmpfs      rw,nosuid,nodev,relatime,size=2863440k,nr_inodes=715860,mode=700,inode64
|-/k2                         k2               zfs        rw,xattr,noacl
|-/rpool                      rpool            zfs        rw,noatime,xattr,noacl
| |-/rpool/ROOT               rpool/ROOT       zfs        rw,noatime,xattr,noacl
| `-/rpool/data               rpool/data       zfs        rw,noatime,xattr,noacl
|-/var/lib/lxcfs              lxcfs            fuse.lxcfs rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other
`-/etc/pve                    /dev/fuse        fuse       rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other

ext4, xfs の作成

クラスター選択 > Disk > ZFS > Create: Directory から作成できます。

Create: Directory を選択

Create: Directory

作成時のOutputです。

The operation has completed successfully.
# /sbin/mkfs -t ext4 /dev/nvme0n1p1
mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks:      4096/488376320  2625536/488376320 79171584/488376320244322304/488376320412094464/488376320                   done                            
Creating filesystem with 488376320 4k blocks and 122101760 inodes
Filesystem UUID: 32b206d1-d332-423f-b49f-e95318530dd7
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848

Allocating group tables:     0/14905           done                            
Writing inode tables:     0/14905           done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information:     0/14905           done

# /sbin/blkid /dev/nvme0n1p1 -o export
Created symlink /etc/systemd/system/multi-user.target.wants/mnt-pve-k2.mount -> /etc/systemd/system/mnt-pve-k2.mount.
TASK OK

作成後のWebコンソールと、ターミナルから見たパーティション・マウントパスです。

Directories

root@pve:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme1n1     259:0    0 931.5G  0 disk 
|-nvme1n1p1 259:1    0  1007K  0 part 
|-nvme1n1p2 259:2    0   512M  0 part 
`-nvme1n1p3 259:3    0   931G  0 part 
nvme0n1     259:4    0   1.8T  0 disk 
|-nvme0n1p1 259:5    0   1.8T  0 part /mnt/pve/k2
`-nvme0n1p9 259:6    0     8M  0 part 
TARGET                        SOURCE           FSTYPE     OPTIONS
/                             rpool/ROOT/pve-1 zfs        rw,relatime,xattr,noacl
|-/sys                        sysfs            sysfs      rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/security      securityfs       securityfs rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/cgroup            cgroup2          cgroup2    rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/pstore            pstore           pstore     rw,nosuid,nodev,noexec,relatime
| |-/sys/firmware/efi/efivars efivarfs         efivarfs   rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/bpf               none             bpf        rw,nosuid,nodev,noexec,relatime,mode=700
| |-/sys/kernel/debug         debugfs          debugfs    rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/tracing       tracefs          tracefs    rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/fuse/connections  fusectl          fusectl    rw,nosuid,nodev,noexec,relatime
| `-/sys/kernel/config        configfs         configfs   rw,nosuid,nodev,noexec,relatime
|-/proc                       proc             proc       rw,relatime
| `-/proc/sys/fs/binfmt_misc  systemd-1        autofs     rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=33881
|-/dev                        udev             devtmpfs   rw,nosuid,relatime,size=14284768k,nr_inodes=3571192,mode=755,inode64
| |-/dev/pts                  devpts           devpts     rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
| |-/dev/shm                  tmpfs            tmpfs      rw,nosuid,nodev,inode64
| |-/dev/hugepages            hugetlbfs        hugetlbfs  rw,relatime,pagesize=2M
| `-/dev/mqueue               mqueue           mqueue     rw,nosuid,nodev,noexec,relatime
|-/run                        tmpfs            tmpfs      rw,nosuid,nodev,noexec,relatime,size=2863444k,mode=755,inode64
| |-/run/lock                 tmpfs            tmpfs      rw,nosuid,nodev,noexec,relatime,size=5120k,inode64
| |-/run/rpc_pipefs           sunrpc           rpc_pipefs rw,relatime
| `-/run/user/0               tmpfs            tmpfs      rw,nosuid,nodev,relatime,size=2863440k,nr_inodes=715860,mode=700,inode64
|-/mnt/pve/k2                 /dev/nvme0n1p1   ext4       rw,relatime
|-/rpool                      rpool            zfs        rw,noatime,xattr,noacl
| |-/rpool/ROOT               rpool/ROOT       zfs        rw,noatime,xattr,noacl
| `-/rpool/data               rpool/data       zfs        rw,noatime,xattr,noacl
|-/var/lib/lxcfs              lxcfs            fuse.lxcfs rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other
`-/etc/pve                    /dev/fuse        fuse       rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other

間違って作成した場合

ZFSとDirectoryどちらの場合でも、選択して More から Destroy を選ぶことで削除が可能です。

ZFS の削除

ZFS Pool k2 - Remove

Removed /etc/systemd/system/zfs-import.target.wants/zfs-import@k2.service.
wiping block device /dev/nvme0n1p1
/dev/nvme0n1p1: 8 bytes were erased at offset 0x0003b000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00029000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00028000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x0007b000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00069000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00068000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00066000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00065000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x00064000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07bb000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a9000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a8000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a6000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a5000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07a4000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07fb000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e9000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e8000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e6000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e5000 (zfs_member): 0c b1 ba 00 00 00 00 00
/dev/nvme0n1p1: 8 bytes were erased at offset 0x1d1c07e4000 (zfs_member): 0c b1 ba 00 00 00 00 00
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 0.189003 s, 1.1 GB/s
The operation has completed successfully.
TASK OK

ext4, xfs の削除

Directory k2 - Remove

Removed /etc/systemd/system/multi-user.target.wants/mnt-pve-k2.mount.
wiping block device /dev/nvme0n1p1
/dev/nvme0n1p1: 2 bytes were erased at offset 0x00000438 (ext4): 53 ef
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 0.33387 s, 628 MB/s
The operation has completed successfully.
TASK OK

まとめ

増設したSSDをマウントすることができました。