Skip to content

Instantly share code, notes, and snippets.

@vicenteg
Last active December 19, 2015 00:20
Show Gist options
  • Save vicenteg/5868362 to your computer and use it in GitHub Desktop.
Save vicenteg/5868362 to your computer and use it in GitHub Desktop.
Generating the commands needed to create pools, volumes and then assign them to 64 servers in a SeaMicro chassis.
#!/usr/bin/python
# SSDs in slots 0-1 of each S-card.
# HDDs in slots 2-7 of each S-card.
# Application A - 16 servers
# Assign one 64GB SSD volume to vdisk 0
# Assign three whole-disk volumes to each of vdisk 1, 2, 3
# Application B - 48 servers
# Assign one 32GB SSD volume to disk 0
slots = range(0,8)
disks = range(0,2)
vars = {
'ssd_pool_basename' : "ssd",
'hdd_pool_basename' : "hdd",
'hdd_volume_basename': "hddvol",
'app_a_volume_basename' : "appA",
'app_b_volume_basename' : "appB",
'app_a_volume_size' : 64,
'app_b_volume_size' : 32,
}
for slot in slots:
for disk in disks:
vars.update({ 'disk': disk, 'slot': slot })
print "storage create pool %(slot)d/%(ssd_pool_basename)s-%(disk)d disk %(slot)d/%(disk)d" % vars
print "storage create volume-prefix %(slot)d/%(ssd_pool_basename)s-%(disk)d/%(app_a_volume_basename)s size %(app_a_volume_size)d count 1" % vars
print "storage create volume-prefix %(slot)d/%(ssd_pool_basename)s-%(disk)d/%(app_b_volume_basename)s size %(app_b_volume_size)d count 3" % vars
disks = range(2,8)
for slot in slots:
for disk in disks:
vars.update({ 'disk': disk, 'slot': slot })
print "storage create pool %(slot)d/%(hdd_pool_basename)s-%(disk)d disk %(slot)d/%(disk)d" % vars
print "storage create volume-prefix %(slot)d/%(hdd_pool_basename)s-%(disk)d/%(hdd_volume_basename)s size max" % vars
print """\
configure terminal
storage assign-range 0/0-15/0 0 volume %(app_a_volume_basename)s
storage assign-range 0/0-15/0 1-3 volume %(hdd_volume_basename)s
storage assign-range 16/0-63/0 0 volume %(app_b_volume_basename)s
exit configuration-mode
""" % vars
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment