Wednesday, March 16, 2016

Solaris: Adding different types of raw volumes and disk devices to non-global zones (NGZ)

Adding file system or disk devices to a non-global zone is an integral part of creating a zone. We can add different types of file systems, raw devices and disk devices as well to a non-global zone. The post describes one of the most common ways of adding different file systems, raw and disk devices to a non-global zone.

Adding a Raw Disk device

We can either add a slice or a complete raw disk to the non-global zone. In case of a full disk use s2 slice or else use any other slice you want to add.

global # zonecfg -z zone01

zonecfg:zone01> add device

zonecfg:zone01:device> set match=/dev/rdsk/c0t0d0s6

zonecfg:zone01:device> end

zonecfg:zone01> commit

zonecfg:zone01> verify

zonecfg:zone01>exit

Adding a VxFS file system

1. Adding a VxVM file system

global # zonecfg -z zone01

zonecfg:zone01> add fs

zonecfg:zone01:fs> set type=vxfs

zonecfg:zone01:fs> set special=/dev/vx/dsk/datadg/datavol

zonecfg:zone01:fs> set raw=/dev/vx/rdsk/datadg/datavol

zonecfg:zone01:fs> set dir=/data

zonecfg:zone01:fs> end

zonecfg:zone01> commit

zonecfg:zone01> verify

zonecfg:zone01> exit

2. Adding a VxVM raw volume

global# zonecfg -z zone01

zonecfg:zone01> add device

zonecfg:zone01:device> set match=/dev/vx/rdsk/dg1/vol1

zonecfg:zone01:device> end

zonecfg:zone01> commit

zonecfg:zone01> verify

zonecfg:zone01> exit

Adding UFS file system

1. Adding UFS under SVM

global # zonecfg -z zone01

zonecfg:zone01> add fs

zonecfg:zone01:fs> set dir=/u01

zonecfg:zone01:fs> set special=/dev/md/dsk/d100

zonecfg:zone01:fs> set raw=/dev/md/rdsk/d100

zonecfg:zone01:fs> set type=ufs

zonecfg:zone01:fs> add options [nodevices,logging]

zonecfg:zone01:fs> end

zonecfg:zone01> commit

zonecfg:zone01> verify

zonecfg:zone01> exit

2. Adding UFS under VxVM volume
We can also create a UFS file system on a VxVM volume as follows.

global # vxassist -g datadg make datavol 1g

global # mkfs -F ufs /dev/vx/rdsk/datadg/datavol

global # mount -F ufs /dev/vx/dsk/datadg/datavol /zones/zone01/root/data

To add the UFS under VxVM :

global # zonecfg -z zone01

zonecfg:zone01> add fs

zonecfg:zone01:fs> set type=ufs

zonecfg:zone01:fs> set special=/dev/vx/dsk/datadg/datavol

zonecfg:zone01:fs> set raw=/dev/vx/rdsk/datadg/datavol

zonecfg:zone01:fs> set dir=/zones/zone1/root/data

zonecfg:zone01:fs> end

zonecfg:zone01> commit

zonecfg:zone01> verify

zonecfg:zone01> exit

Adding ZFS

1. Adding a ZFS file system to a non-global zone – Make sure the mount point property of the ZFS file system getting added to a zone is set to legacy, otherwise it may get assigned to multiple non-global zones simultaneously.

global # zonecfg -z zone01

zonecfg:zone01> add fs

zonecfg:zone01:fs> set type=zfs

zonecfg:zone01:fs> set special=rpool/data

zonecfg:zone01:fs> set dir=/data

zonecfg:zone01:fs> end

zonecfg:zone01> verify

zonecfg:zone01> commit

zonecfg:zone01> exit

2. Adding ZFS file system as a loopback file system (lofs) to a non-global zone :

global # zonecfg -z zone01

zonecfg:zone01> add fs

zonecfg:zone01:fs> set special=rpool/data

zonecfg:zone01:fs> set dir=/data

zonecfg:zone01:fs> set type=lofs

zonecfg:zone01:fs> end

zonecfg:zone01> commit

zonecfg:zone01> verify

zonecfg:zone01> exit

global # mkdir -p /zoneroot/zone01/root/data

global # mount -F lofs rpool/data /zoneroot/zone01/root/data

3. Delegating a dataset to a non-global zone – here you have a complete control of the dataset you delegate to the non-global zone. For example you can create your own child datasets under the dataset you delegate and set properties of the delegated dataset etc. The ZFS file system data will be available as a pool in the non-global zone.

global # zonecfg -z zone01

zonecfg:zone01> add dataset

zonecfg:zone01:dataset> set name=rpool/data

zonecfg:zone01:dataset> end

zonecfg:zone01> commit

zonecfg:zone01> verify

zonecfg:zone01> exit

3. Adding ZFS volumes to non-global zones

global # zonecfg -z zone01

zonecfg:zone1> add device

zonecfg:zone1:device> set match=/dev/zvol/dsk/rpool/datavol

zonecfg:zone1:device> end

zonecfg:zone1> verify

zonecfg:zone1> commit

zonecfg:zone1> exit

Adding a CD-ROM to non-global zone

To add a CD-ROM to the non-global zone :

global # zonecfg -z zone01

zonecfg:zone01> add fs

zonecfg:zone01:fs> set dir=/cdrom

zonecfg:zone01:fs> set special=/cdrom

zonecfg:zone01:fs> set type=lofs

zonecfg:zone01:fs> end

zonecfg:zone01> verify

zonecfg:zone01> commit

zonecfg:zone01> exit

 

No comments:

Post a Comment