[lxc-users] LXD - Small Production Deployment - Storage

Stéphane Graber stgraber at ubuntu.com
Wed Mar 29 16:01:43 UTC 2017


On Wed, Mar 29, 2017 at 03:13:36PM +0200, Gabriel Marais wrote:
> Hi Guys
> 
> If this is the incorrect platform for this post, please point me in the
> right direction.
> 
> We are in the process of deploying a small production environment with the
> following equipment:-
> 
> 2 x Dell R430 servers each with 128GB Ram and 3 x 600GB SAS 10k drives
> 1 x Dell PowerVault MD3400 with
> 	3 x 600GB 15k SAS Drives
> 	3 x 6TB 7.2k Nearline SAS drives
> 
> The PowerVault is cabled directly to the Host Servers via Direct Attached
> Storage, redundantly.
> 
> 
> We would like to run a mixture of KVM and LXD containers on both Host
> Servers.
> 
> The big question is, how do we implement the PowerVault (and to a certain
> extent the storage on the Host Servers themselves) to be most beneficial in
> this mixed environment.
> 
> I have a few ideas on what I could do, but since I don't have much
> experience with shared storage, I am probably just picking straws and would
> like to hear from others that probably has more experience than me.

Hi,

I'm not particularly familiar with the DELL PowerVault series, but it
looks like the other answers you've received so far have entirely missed
the "Direct Attached Storage" part of your description :)

For others reading this thread, this setup will effectively show up on
both servers as directly attached disks through /dev/mapper (because of
multipath), there is no need to use any kind of networked storage on top
of this.


The answer to your question I suspect will depend greatly on whether
you're dealing with a fixed number of VMs and containers, or if you
intend to spawn and delete them frequently. And also on whether you need
fast (no copy) migration of individual VMs and containers between the
two hosts.

One approach is to have a physical partition per virtual machine.
With this, you can then access the drive from either host (obviously
never from both at the same time), which means that should you want to
start the VM on the other host, you just need to stop the kvm process on
one and start it again on the other, without any data ever being moved.

For containers, it's a bit trickier as we don't support using a raw
block device as the root of the container. So you'd need LXD to either
use the host's local storage for the container root and then mount block
devices into those containers at paths that hold the data you care
about. Or you'd need to define a block device for each server in the
PowerVault and have LXD use that for storage (avoiding using the local
storage).

The obvious advantage of the second option is that should one of the
server go away for whatever reason, you'd be able to mount that server's
LXD pool onto the other server and spawn a second LXD daemon on it,
taking over the role of the dead server.


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20170329/9d844481/attachment.sig>


More information about the lxc-users mailing list