Compute Instances can be launched with the storage divided into several volumes. This can be useful for encrypted volumes, different backup scenarios or to isolate data on different partitions.
Requirements:
- You have an account and are logged into console.scaleway.com
- You have configured your SSH Key
- You have sudo privileges or access to the root user.
Run lsblk
to see all volumes attached to an instance:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 116.4G 0 disk
├─vda1 252:1 0 116.3G 0 part /
└─vda15 252:15 0 100M 0 part /boot/efi
vdb 252:16 0 23.3G 0 disk
During instance creation, only the first volume of an instance is being formatted and the OS being installed.
If the volume on an instance has never been formatted, it has to be formatted using mkfs
before you can mount it.
For instance, the following command creates an ext4
file system on the volume:
mkfs -t ext4 /dev/vdb
The output looks similar to the following example:
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 6103515 4k blocks and 1525920 inodes
Filesystem UUID: 6191325f-0bde-4476-8465-176b2d183d60
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
To mount the device manually as /mnt/data, run the following commands:
mkdir -p /mnt/data
mount /dev/vdb /mnt/data
ls -la /mnt/data/
total 24
drwxr-xr-x 3 root root 4096 Jan 1 00:07 .
drwxr-xr-x 3 root root 4096 Jan 1 00:07 ..
drwx------ 2 root root 16384 Jan 1 00:07 lost+found
To mount the additional volume automatically, create a systemd script that will mount the volumes automatically during the boot of your cloud instance.
If not yet done, create the directory into you want to mount your volume: mkdir -p /mnt/data
As the volume is empty by default, you have to create a filesystem before you can use it. To format it with with an ext4
filesystem, use the following command: mkfs -t ext4 /dev/vdb
To get the UUID
of your volume, run the command blkid
and take a note of the ID as you will need it in the next step.
Create or edit the file that corresponds to the path of your directory nano /etc/systemd/system/mnt-data.mount
and edit is as following:
Important: The file name of the script must correspond to the path where you mount the volume (
/mnt/data
⇒mnt-data.mount
)*
[Unit]
Description=Mount Volume at boot
[Mount]
What=UUID="6191325f-0bde-4476-8465-176b2d183d60"
Where=/mnt/data
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
Replace UUID
with the ID of your volume.
Now reload systemd: systemctl daemon-reload
Launch the script to mount the volume: systemctl start mnt-data.mount
Finally enable the script to mount your volume automatically during boot: systemctl enable mnt-data.mount
Your volume will automatically be mounted after a reboot. You can run the df -h
command, this command will list all your devices and where they are mounted:
root@scw-gallant-wu:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 632K 1.6G 1% /run
/dev/vda1 115G 1.9G 108G 2% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/vda15 99M 122K 99M 1% /boot/efi
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/vdb 23G 45M 22G 1% /mnt/data