Managing a Block Storage volume
This documentation only explains how to mount additional block volumes to your Instance, as the root volume of your Instance is already mounted at creation. The volume where your OS is running cannot be mounted.
Before you start
To complete the actions presented below, you must have:
- A Scaleway account logged into the console
- Owner status or IAM permissions allowing you to perform actions in the intended Organization
- An Instance
- Attached an additional Block Storage volume to your Instance
Mounting and using a Block Storage volume
In order to mount and use your Block Storage volume, you need to connect to the Instance it is attached to, via SSH. Then, check that the volume is available, format it, and mount it following the instructions below.
Verifying device availability
-
Connect to your Instance with
ssh
.ssh root@<your_instance_ip>
-
Use the
lsblk
command to confirm that your block volume is available:lsblk
You should see an output similar to the following. The root Block volume
sda
, contains your OS. The Block volume namedsdb
is the one we will be mounting to the Instance.root@scw-festive-agnesi:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 18.6G 0 disk ├─sda1 8:1 0 18.5G 0 part / ├─sda14 8:14 0 4M 0 part └─sda15 8:15 0 106M 0 part /boot/efi sdb 8:16 0 27.9G 0 disk
Formatting the Block volume
Formatting your volume prepares it for storing files.
- Create a file system with the following command. This command uses the
ext4
file system, though you can choose another if you prefer.# Make sure that you replace `/dev/sdX` with the name of your volume mkfs.ext4 /dev/sdX
- Run the following command to check if your file system was correctly created.
lsblk -f
You should see an output like the following. Check that the FSTYPE
field matches ext4
for your Block volume. In this example, we have formatted the sdb
volume.
root@scw-festive-agnesi:~# lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1
│ ext4 1.0 cloudimg-rootfs
│ cf5b092b-9a8b-49e9-980c-b44b5e3ed197 14.5G 18% /
├─sda14
│
└─sda15
vfat FAT32 UEFI D590-3FD4 98.3M 6% /boot/efi
sdb ext4 1.0 d36bdf8b-b2ff-4e2b-9736-cc05940aea35
Creating the mount point and mounting the Block volume
Once you have created your file system, you need to define where you want to mount your volume, and create a mount point (directory) for it.
-
Create the mount point. You can replace
block-volume
with another name for your mount point.mkdir /mnt/block-volume
-
Mount the volume. We recommend that you use the
defaults
option, as in the command below.# Replace sdX with the name of your volume mount -o defaults /dev/sdX /mnt/block-volume
If you want to see all available options, you can run
man mount
on your Instance. -
Run the following command to check if your volume was properly mounted:
lsblk
You should see an output like the following. Check the
MOUNTPOINT
field.root@scw-festive-agnesi:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 18.6G 0 disk ├─sda1 8:1 0 18.5G 0 part / ├─sda14 8:14 0 4M 0 part └─sda15 8:15 0 106M 0 part /boot/efi sdb 8:16 0 27.9G 0 disk /mnt/block-volume
The sdb
volume is mounted at /mnt/block-volume
.
Using fstab for Persistent Mounting
With the current configuration, your volume will not be mounted automatically upon reboot. Use the /etc/fstab
file to ensure the reboot does not impact your file system.
Run the following command to make sure your volume is automatically mounted to your Instance upon reboot. You must replace sdX
with your volume.
echo "UUID=$(blkid --output value /dev/sdX | head -n1) /mnt/block-volume ext4 defaults 0 0" >> /etc/fstab
Transferring data from your local machine to the remote Block volume
You can transfer files from your local machine to your Instance's remote Block volume with rsync, a tool for efficiently transferring and copying files. The rsync utility is pre-installed on most Linux distributions and macOS.
-
Check that rsync is installed on your local machine with the following command:
rsync --version
An output similar to the following displays:
rsync version 3.1.3 protocol version 31 Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others. Web site: http://rsync.samba.org/ Capabilities: 64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints, socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace, append, ACLs, xattrs, iconv, symtimes, prealloc rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the GNU General Public Licence for details.
-
On your local machine, open a new terminal and use the following command to create a file called
hello-world.txt
:nano hello-world.txt
-
Enter the text
Hello World!
. -
Press
Ctrl+O
, thenEnter
, thenCtrl+X
to save and exit the file. -
Enter the following command to transfer the file to your Instance's mounted block volume. Ensure that you use your own Instance's IP address:
rsync -a hello-world.txt root@<your_instance_ip>:/mnt/block-volume
The file is now transferred. You can connect to your Instance again, and use the command cd /mnt/block-volume ; ls
to check that the file appears in the directory.
Increasing the partition size of the volume with growpart
growpart
allows you to resize partitions. If you have increased the size of the partition's underlying volume, for example, you can increase the size of the partition to make use of the additional space.
-
Connect to your Instance using SSH.
-
Use the
lsblk
command to identify your volume partition. Ensure that the partition is not mounted before you resize it. In the following example, we are resizingsdb1
:root@scw-festive-agnesi:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 23.3G 0 disk ├─sda1 8:1 0 23.2G 0 part / ├─sda14 8:14 0 4M 0 part └─sda15 8:15 0 106M 0 part /boot/efi sdb 8:16 0 38.6G 0 disk └─sdb1 8:17 0 18.6G 0 part
-
Use
growpart
to increase the partition size of your Block Storage volume (heresdb1
):# Replace /dev/sdX 1 with the name of your partition growpart /dev/sdX 1
An output similar to the following displays:
CHANGED: partition=1 start=0 old: size=39061504 end=39061504 new: size=58490880 end=58490880
-
Use
lsblk
to check that the partition was correctly resized. In the following output, you can see that our partitionsbd1
went from18.6G
(step 2) to27.9G
.root@scw-festive-agnesi:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 18.6G 0 disk ├─sda1 8:1 0 18.5G 0 part / ├─sda14 8:14 0 4M 0 part └─sda15 8:15 0 106M 0 part /boot/efi sdb 8:16 0 27.9G 0 disk └─sdb1 8:17 0 27.9G 0 part