
Title
Create new category
Edit page index title
Edit category
Edit link
Mount Cinder Volumes to Instances by UUID
Problem
When attaching multiple Cinder Volumes to an instance, it is possible that the mount points will be jumbled on reboot. Mounting the volumes by UUID ensures the proper volumes are reattached to the correct mount points in the event the instance requires a power cycle.
Environment
- Platform9 Managed OpenStack - All Versions
Procedure
1. Once you have mounted the volume(s) to the instance in the UI per the instruction provided in the article, Cinder Block Storage Integration in Platform9, SSH to the instance and verify the disk has been attached properly.
root@host:~# fdisk -lDisk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x55bca5c1Device Boot Start End Sectors Size Id Type/dev/vda1 * 2048 41943006 41940959 20G 83 LinuxDisk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesNotice disk /dev/vdb does not yet have any partitions configured.
2. Start thefdisk utility to format and partition the new disk.
root@host:~# fdisk /dev/vdbWelcome to fdisk (util-linux 2.27.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0x27c730b0.Command (m for help):3. Make the following selections at the "Command (m for help):" prompt:
- n - to create a new partition
- p - to make the new partition a primary partition
- 1 - to make this the first partition
root@host:~# fdisk /dev/vdbWelcome to fdisk (util-linux 2.27.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0x27c730b0.Command (m for help): nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)Select (default p): pPartition number (1-4, default 1): 1First sector (2048-10485759, default 2048):Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759):Created a new partition 1 of type 'Linux' and of size 5 GiB.Command (m for help):To use the default first and last sectors of the disk, simply press "Enter" with no value entered.
4. Proceed with the following selections:
- t - to change the partition type
- 83 - to change the partition type to 'Linux'
Command (m for help): tSelected partition 1Partition type (type L to list all types): 83Changed type of partition 'Linux' to 'Linux'.5. Complete partitioning with these selections:
- p - to print the partition table
- w - to write the table to disk and exit the utility
Command (m for help): pDisk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x27c730b0Device Boot Start End Sectors Size Id Type/dev/vdb1 2048 10485759 10483712 5G 83 LinuxCommand (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.6. You will now see your new ( /dev/vdb1) partition in the fdisk -loutput.
root@host:~# fdisk -lDisk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x55bca5c1Device Boot Start End Sectors Size Id Type/dev/vda1 * 2048 41943006 41940959 20G 83 LinuxDisk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x27c730b0Device Boot Start End Sectors Size Id Type/dev/vdb1 2048 10485759 10483712 5G 83 Linux7. Create a filesystem on the new partition.
root@host:~# mkfs.ext4 /dev/vdb1mke2fs 1.42.13 (DD-MON-YYYY)Creating filesystem with 1310464 4k blocks and 327680 inodesFilesystem UUID: c70e880a-5702-4b5c-92fe-ccadcc3614caSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736Allocating group tables: doneWriting inode tables: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done8. Collect the UUID of the new volume.
root@host:~# blkid/dev/vda1: LABEL="cloudimg-rootfs" UUID="5c615711-516f-4eb1-bca9-592288a14b59" TYPE="ext4" PARTUUID="55bca5c1-01"/dev/vdb1: UUID="c70e880a-5702-4b5c-92fe-ccadcc3614ca" TYPE="ext4" PARTUUID="27c730b0-01"9. Determine what directory you will mount your volume and create it if necessary.
xxxxxxxxxxroot@host:~# mkdir /dataroot@host:~# mkdir /data/goeshere10. Mount the volume.
xxxxxxxxxxroot@host:~# mount /dev/disk/by-uuid/c70e880a-5702-4b5c-92fe-ccadcc3614ca /data/goeshere11. Edit the /etc/fstab file with your preferred text editor to add the mount point to persist after a reboot.
xxxxxxxxxx/dev/disk/by-uuid/c70e880a-5702-4b5c-92fe-ccadcc3614ca /data/goeshere auto defaults,nofail 0 312. Verify the volume was mounted properly.
root@host:~# df -hFilesystem Size Used Avail Use% Mounted onudev 994M 0 994M 0% /devtmpfs 201M 3.1M 197M 2% /run/dev/vda1 20G 861M 19G 5% /tmpfs 1001M 0 1001M 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 1001M 0 1001M 0% /sys/fs/cgrouptmpfs 201M 0 201M 0% /run/user/1000/dev/vdb1 4.8G 10M 4.6G 1% /data/goeshere