System administration guidance (for the unmanaged cloud)
Managing storage
When provisioned, a virtual machine gets allocated a small hard disk (the exact size of the disk depends on the selected machine size). This disk is intended to run the operating system only. If you require additional storage for data, it is possible to add extra volumes to a virtual machine.
First, create a new volume by navigating to the volumes tab and clicking on "New Volume":
This will launch a dialog that allows you to specify a name and size for the volume:
Once the volume becomes available, you can attach it to a VM. First, click on the "Actions" button and select "Attach volume to machine":
This will open a dialog allowing you to select the VM that you want to attach the volume to:
Once the volume has attached to the VM, the new disk will be visible to the machine but will not be usable. This can be verified using the lsblk
command:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 4G 0 disk └─sda1 8:1 0 4G 0 part / sdb 8:16 0 50G 0 disk
Here, we can see that the operating system is recognising the new disk - sdb
- but there are no partitions or file systems associated with it. To make the disk usable, it must be formatted with a filesystem and mounted somewhere, e.g. /data
:
# Create a single partition spanning the whole disk $ fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x598d636f. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): Using default value 1 First sector (2048-33554431, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-33554431, default 33554431): Using default value 33554431 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. # Verify that the partition was created $ lsblk /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 16G 0 disk └─sdb1 8:17 0 16G 0 part # Create a filesystem on the partition $ mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (4-Feb-2014) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1048576 inodes, 4194048 blocks 209702 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 128 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group 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 # Mount the filesystem $ mkdir /data $ mount /dev/sdb1 /data # Verify that the filesystem is now available $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 4G 0 disk └─sda1 8:1 0 4G 0 part / sdb 8:16 0 50G 0 disk └─sdb1 8:17 0 50G 0 part /data $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 4.0G 1.4G 2.7G 34% / devtmpfs 222M 0 222M 0% /dev tmpfs 245M 0 245M 0% /dev/shm tmpfs 245M 8.8M 236M 4% /run tmpfs 245M 0 245M 0% /sys/fs/cgroup tmpfs 49M 0 49M 0% /run/user/0 /dev/sdb1 50G 53M 47G 1% /data # Add a line to /etc/fstab to make the mount persistent (i.e. automatic mount on boot) echo "/dev/sdb1 /data ext4 defaults 0 0" >> /etc/fstab