How To: using EMC Storage devices on Linux
Scenario:
An EMC storage is connected to a linux box (via scsi, iscsi, fc etc.) and presents devices to the linux box.
The EMC has two connections over which it presents the same devices, so each device is actually seen twice, once as e.g. sdb, sdc, sdd, sde, and once as sdf, sdg, sdh, sdi
Furthermore, the storage presents metadevices called emcpowera through emcpowerd
To use the storage the following steps have to be taken:
- with the Logical Volume Manager initialize the emcpowerX devices
- add to Volume Group/Volume
- create filesystem
- define mountpoint(s)
- mount devices
Caveat:
LVM initializes the respective sd devices instead of the emc metadevices, so failover does not really work at the moment.
CLI:
Create partitions of type 0x83 on each single device, e.g. with fdisk
fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-10240, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-10240, default 10240):
Using default value 10240
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Create Physical Volumes using the emcpowerX devices:
pvcreate /dev/emcpowera1 (b1,...)
Create Volume Group starting with one physical volume:
vgcreate -A y VGNAME EMCDEVICE
with VGNAME something like VolGroup01
and EMCDEVICE /dev/emcpowera1
Extend the Volume Group with the remaining physical volumes:
vgextend -A y VGNAME EMCDEVICE2 EMCDEVICE3 ...
Create Logical Volume using the previously created Volume Group:
lvcreate -A y -d -l PE -n LVNAME VGNAME
with PE the physical extents from vgdisplay, something like 10826
and LVNAME the name of the Logical Volume, something like LV01
Create filesystem on Logical Volume
mkfs -t ext3 /dev/VolGroup01/LV01
Find/Create Mount Point, insert into /etc/fstab.
Done.
To remove a LV, use
lvremove -A n -d -v PATH_TO_LV/LVNAME
To remove the Volume Group, first reduce the Volume Group with
vgreduce -a VGNAME
then remove the remaining pv with
pvremove -v -ff /DEVICE