Solaris: How to Resize a Swap Partition….on a disk without any free slices

First lets detach the swap partition (submirror) on the secondary disk. Where d1 is the metadevice and d21 is the submirror

#metadetach d1 d21
d1: submirror d21 is detached

metaclear d21
d21: Concat/Stripe is cleared

Now lets format Secondary Disk (c1t1d1 in this example)

Below is the partition table of the disk that I am working with. Slice one will be resized using unallocated disk space. Add 1 to the last cylinder of slice 7 to determine your starting cylinder. In this case my new starting cylinder is 2691.

Total disk cylinders available: 14087 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 824 4.00GB (825/0/0) 8395200
1 swap wu 825 - 1031 1.00GB (207/0/0) 2106432
2 backup wm 0 - 14086 68.35GB (14087/0/0) 143349312
3 unassigned wm 1032 - 1038 34.78MB (7/0/0) 71232
4 var wm 1039 - 1657 3.00GB (619/0/0) 6298944
5 home wm 1658 - 2070 2.00GB (413/0/0) 4202688
6 stand wm 2071 - 2277 1.00GB (207/0/0) 2106432
7 stand wm 2278 - 2690 2.00GB (413/0/0) 4202688

Now resize the partition
In this case I am going to use the rest of the disk, which according to the information for partition two, ends @ cylinder 14087. Subtract 2691 from 14087, to determine how many cylinders your slice is going to be.

Enter partition id tag[swap]:
Enter partition permission flags[wu]:
Enter new starting cyl[825]: 2691
Enter partition size[2106432b, 207c, 1028.53mb, 1.00gb]: 11396c

Now save this new partition scheme

Enter table name (remember quotes): my_table

Then label your disk. As you can see below, my swap partition is now huge.

Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 824 4.00GB (825/0/0) 8395200
1 swap wu 2691 - 14086 55.30GB (11396/0/0) 115965696
2 backup wm 0 - 14086 68.35GB (14087/0/0) 143349312
3 unassigned wm 1032 - 1038 34.78MB (7/0/0) 71232
4 var wm 1039 - 1657 3.00GB (619/0/0) 6298944
5 home wm 1658 - 2070 2.00GB (413/0/0) 4202688
6 stand wm 2071 - 2277 1.00GB (207/0/0) 2106432
7 stand wm 2278 - 2690 2.00GB (413/0/0) 4202688
Now lets Swap the Swap


First, reinitialize swap submirror.
metainit d21
d21: Concat/Stripe is setup

Add swap to new submirror

\swap -a /dev/md/dsk/d21

View swap

swap -l
swapfile dev swaplo blocks free
/dev/md/dsk/d1 85,1 16 2106416 2106416
/dev/md/dsk/d21 85,21 16 115965680 115965680

Remove the metadevice from swap

swap -d /dev/md/dsk/d1

Verify that previous step worked

swap -l
swapfile dev swaplo blocks free
/dev/md/dsk/d21 85,21 16 115965680 115965680

Clear Metadevice/Mirror

metaclear d1
Mirror is cleared
Clear Metadevice/submirror
metaclear d11
d11: Concat/Stripe is cleared

Format Primary Disk (c1t1d0 in this example)

Select a predefined table

partition> select
0. original
1. my_table
Specify table (enter its number)[0]: 1
View the partition table, and make sure it looks right.
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 824 4.00GB (825/0/0) 8395200
1 swap wu 2691 - 14086 55.30GB (11396/0/0) 115965696
2 backup wm 0 - 14086 68.35GB (14087/0/0) 143349312
3 unassigned wm 1032 - 1038 34.78MB (7/0/0) 71232
4 var wm 1039 - 1657 3.00GB (619/0/0) 6298944
5 home wm 1658 - 2070 2.00GB (413/0/0) 4202688
6 stand wm 2071 - 2277 1.00GB (207/0/0) 2106432
7 stand wm 2278 - 2690 2.00GB (413/0/0) 4202688

Label disk
partition> label
Ready to label disk, continue? y

Put things back the way they were.

Reinitialize the swap submirror on the primary disk

metainit d11
d11: Concat/Stripe is setup

Reinitialize Metadevice Mirror

metainit d1
d1: Mirror is setup

Add the metadevice to swap
swap -a /dev/md/dsk/d1

… and verify that it took

swap -l
swapfile dev swaplo blocks free
/dev/md/dsk/d21 85,21 16 115965680 115965680
/dev/md/dsk/d1 85,1 16 115965680 115965680

Remove the submirror that you added to swap in the step above

swap -d /dev/md/dsk/d21

Reattach Submirror d21 to Mirror d1

metattach d1 d21
d1: submirror d21 is attached

Redefine dump device

dumpadm -d swap
Dump content: kernel pages
Dump device: /dev/md/dsk/d1 (swap)
Savecore directory: /var/crash/blahblah
Savecore enabled: yes

Related articles

SwapFaq’s
Repartitioning a Linux Cloud Server
HomeLab: Cisco Switch Boot Alternate IOS Image
Solaris 9 Scan for New SAN Luns & and Vertias Volume Manager Quick Start

Solaris HBA Notes

Below is a cheat sheet that I put together of commands that are helpful for managing HBAs on Solaris.

Helpful Commands

  • luxadm probe
  • luxadm -e port
  • devfsadm

More Helpful Commands

  • To show Sun/Qlogic HBA’s:

luxadm qlgc

  • To show all vendor HBA’s — see sample output below:

luxadm fcode_download -p

Found Path to 0 FC100/S Cards

Complete

Found Path to 5 FC100/P, ISP2200, ISP23xx Devices

Opening Device: /devices/pci@9,600000/SUNW,qlc@2/fp@0,0:devctl

Detected FCode Version:       ISP2200 FC-AL Host Adapter Driver: 1.14 01/11/20

Opening Device: /devices/pci@8,700000/SUNW,qlc@5,1/fp@0,0:devctl

Detected FCode Version:       ISP2312 Host Adapter Driver: 1.14.09 03/08/04

Opening Device: /devices/pci@8,700000/SUNW,qlc@3,1/fp@0,0:devctl

Detected FCode Version:       ISP2312 Host Adapter Driver: 1.14.09 03/08/04

Opening Device: /devices/pci@8,700000/SUNW,qlc@3/fp@0,0:devctl

Detected FCode Version:       ISP2312 Host Adapter Driver: 1.14.09 03/08/04

Opening Device: /devices/pci@8,700000/SUNW,qlc@5/fp@0,0:devctl

Detected FCode Version:       ISP2312 Host Adapter Driver: 1.14.09 03/08/04

Complete

  • Another Method of doing the same thing as above:

prtpicl -v > filename

  • To show link status of card:

luxadm -e port

  • See WWNS:

To see the WWN’s (using address given to you from previous commands), it is
the last one that specifies it is a HBA, so the port WWN here is 210000e08b100d16

# luxadm -e dump_map /devices/pci@1f,0/pci@1/SUNW,qlc@1/fp@0,0:devctl

Pos Port_ID Hard_Addr Port WWN Node WWN Type

0 10600 0 224100015d210900 220000015d210900 0x1f (Unknown Type)

1 10700 0 210000e08b103417 200000e08b103417 0x1f (Unknown Type)

2 10800 0 210000e08b100d16 200000e08b100d16 0x1f (Unknown Type,Host Bus Adapter

Configuring storage online

  • List unconfigured disks

cfgadm -al

Ap_Id Type Receptacle Occupant Condition

c0 scsi-bus connected configured unknown

c0::dsk/c0t0d0 disk connected configured unknown

c0::dsk/c0t2d0 CD-ROM connected configured unknown

c1 fc-fabric connected unconfigured unknown

c1::210000e08b103417 unknown connected unconfigured unknown

c1::224100015d210900 unknown connected unconfigured unknown

c2 fc-fabric connected unconfigured unknown

c2::210100e08b303417 unknown connected unconfigured unknown

c2::223100015d210900 unknown connected unconfigured unknown

So we can see that c1 and c2 are both unconfigured disks, so we now run the command below to configure them.

# cfgadm -f -c configure c1 c2

You can now run devfsadm.

Example cfgadm -al

c1                             fc-private

c1::21000020379cb9bb           disk         connected    configured   unknown

c4                             fc-fabric    connected    unconfigured unknown

c5                             fc           connected    unconfigured unknown

C1 is a 280r internal controller
C4 is a HBA attached to a switch with no targets
C5 is a HBA that has nothing connected

More Good Stuff

1) The command cfgadm -al

2) look for the fc-fabric

c2                             fc-fabric    connected

c3                             fc-fabric    connected

3) and then cfgadm -cconfigure c2 c3

4) Now you see the LUN

A Magical File – Check it Out

/kernel/drv/sd.conf

Checking IO on Fibre Cards

iostat -xcn 5

San Foundation Kit

You get this from Sun, install it after you install the drivers
There is no SAN foundation kit for Solaris 10. Installing the SAN foundation
kit will do bad things. It’s only for Solaris 8 and Solaris 9.

Get the WWN

 Method 1:

 

$ luxadm probe
$ luxadm -e port

$ luxadm -e dump_map <xyz> where xyz= your connected port.

Method 2:

bash-2.03# cat /var/adm/messages | grep -i WWN

Sep 20 18:23:28 alautpnc003 qlc: [ID 657001 kern.info] Qlogic qlc(0) WWPN=210000e08b934ead : WWNN=200000e08b934ead

Sep 20 18:23:39 alautpnc003 qlc: [ID 657001 kern.info] Qlogic qlc(1) WWPN=210100e08bb34ead : WWNN=200100e08bb34ead

Method 3:

#modinfo | grep SunFC

46 10274e94 20010 172 1 fcp (SunFC FCP v20050926-1.86)

47 10269923 8204 – 1 fctl (SunFC Transport v20050926-1.36)

51 1028b850 15e28 171 1 fp (SunFC Port v20050926-1.53)

53 10300f09 c5024 175 1 qlc (SunFC Qlogic FCA v20051013-2.08)

Method 4:

cfgadm -o show_FCP_dev -al

Method 5:

prtconf -pv | grep -i wwn | grep -i port