devstack – how to add directly attached storage to a single node installation

Jasonovich asked:

I have devstack up and running on an Ubuntu 14.04 x86_64 VM in a single node environment.

The VM has / mounted on an 8GB primary disk and an 80GB secondary disk mounted on /mnt.

Output of mount

/dev/xvda1 on / type ext4 (rw)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/xvdb on /mnt type ext3 (rw)

When nova starts up it only sees the primary disk as usable storage for VMs.

It doesn’t recognize that it can use the 80Gb volume and I want it to.

I am new to Openstack/Devstack and I’m sure this is very easy, since I feel this has to be an extremely common use-case for people who just want to bring up a single node to develop against. I just don’t know what commands to run or which config file to edit.

Does anyone know how this is done?

Internet searches seem to only point me to creating block storage for a specific instance and I don’t care about that. I don’t want to add volumes to instances. I want to add storage for provisioning instances to.

Many thanks.

My answer:

Persistent block storage is handled by cinder, not nova (compute).

If you set up cinder with its defaults, then it will use an LVM volume group named cinder-volumes to store block device volumes for virtual machines.

As a result, it’s trivial to add storage space to this volume group; just pvcreate to create an LVM PV on a physical disk or disk partition, then vgextend to extend the VG onto the new PV.

For example:

umount /mnt    # and remove it from /etc/fstab of course
pvcreate /dev/xvdb
vgextend cinder-volumes /dev/xvdb

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.