Preparing to remove Veritas Volume Manager

This section describes the steps you need to take before removing Veritas Volume Manager (VxVM) to preserve the contents of the volumes.

Warning:

Failure to follow the preparations in this section might result in unexpected behavior.

Moving volumes from an encapsulated root disk

Use the following procedure to move volumes from an encapsulated root disk.

To uninstall VxVM if root, swap, usr, or var is a volume under Volume Manager control

  1. Ensure that the rootvol, swapvol, usr, and var volumes have only one associated plex each.

    The plex must be contiguous, non-striped, non-spanned, and non-sparse. To obtain this information, enter the following:

    # vxprint -ht rootvol swapvol usr var

    If any of these volumes have more than one associated plex, remove the unnecessary plexes using the following command:

    # vxplex -o rm dis plex_name
  2. Run the vxunroot command:
    # /etc/vx/bin/vxunroot

    The vxunroot command changes the volume entries in /etc/vfstab to the underlying disk partitions for rootvol, swapvol, usr, and var. It also modifies /etc/system and prompts for a reboot so that disk partitions are mounted instead of volumes for root, swap, usr, and var.

  3. Once you have changed the root, swap, usr, and var volumes, move all remaining volumes to disk partitions.

    You can do this using one of the following procedures:

    • Back up the entire system to tape and then recover from tape.

    • Back up each file system individually and then recover them all after creating new file systems on disk partitions.

    • Move volumes incrementally to disk partitions.

      Otherwise, shut down VxVM.

Moving volumes to disk partitions

Use the following procedure to move volumes incrementally to disk partitions.

To move volumes incrementally to disk partitions

  1. Evacuate disks using vxdiskadm, the VOM GUI, or the vxevac utility.

    Evacuation moves subdisks from the specified disks to target disks. The evacuated disks provide the initial free disk space for volumes to be moved to disk partitions.

  2. Remove the evacuated disks from VxVM control by entering:
    # vxdg rmdisk diskname 
    # vxdisk rm devname
  3. Decide which volume to move first, and if the volume is mounted, unmount it.
  4. If the volume is being used as a raw partition for database applications, make sure that the application is not updating the volume and that you have applied the sync command to the data on the volume.
  5. Create a partition on free disk space of the same size as the volume using the format command.

    If there is not enough free space for the partition, add a new disk to the system for the first volume removed. Subsequent volumes can use the free space generated by the removal of this first volume.

  6. Copy the data on the volume onto the newly created disk partition using a command such as dd.
    # dd if=/dev/vx/dsk/diskgroup/lhome of=/dev/dsk/c2t2d2s7

    where c2t2d2 is the disk outside of Volume Manager and s7 is the newly created partition.

  7. Replace the entry for that volume (if present) in /etc/vfstab with an entry for the newly created partition.
  8. Mount the disk partition if the corresponding volume was previously mounted.
  9. Stop and remove the volume from VxVM using the commands.
    # vxvol -g diskgroup stop volume_name
    # vxedit -rf rm volume_name
  10. Remove any free disks (those having no subdisks defined on them) by removing the volumes from VxVM control.

    To check if there are still some subdisks remaining on a particular disk, use the vxprint command.

    # vxprint -g diskgroup -F '%sdnum' diskname

    If the output is not 0, there are still some subdisks on this disk that you need to remove. If the output is 0, remove the disk from VxVM control.

    # vxdg rmdisk diskname 
    # vxdisk rm devname

    Use the free space created for adding the data from the next volume you want to remove.

  11. After you successfully convert all volumes into disk partitions, reboot the system.
  12. After the reboot, make sure none of the volumes are open by using the vxprint command.
    # vxprint -Aht -e v_open
  13. If any volumes remain open, repeat the steps listed above.
Example of moving volumes to disk partitions on Solaris

This example shows how to move the data on a volume to a disk partition. In the example, there are three disks: disk1 and disk2 are subdisks on volume vol01 and disk3 is a free disk. The data on vol01 is copied to disk3 using vxevac.

These are the contents of the disk group voldg before the data on vol01 is copied to disk3.

# vxprint -g voldg -ht
DG NAME  NCONFIG   NLOG    MINORS   GROUP-ID
DM NAME  DEVICE    TYPE    PRIVLEN  PUBLEN   STATE
RV NAME  RLINK_CNT KSTATE  STATE    PRIMARY  DATAVOLS  SRL
RL NAME  RVG       KSTATE  STATE    REM_HOST REM_DG    REM_RLNK
V  NAME  RVG       KSTATE  STATE    LENGTH   READPOL   PREFPLEX UTYPE
PL NAME  VOLUME    KSTATE  STATE    LENGTH   LAYOUT    NCOL/WID MODE
SD NAME  PLEX      DISK    DISKOFFS LENGTH   [COL/]OFF DEVICE   MODE
SV NAME  PLEX      VOLNAME NVOLLAYR LENGTH   [COL/]OFF AM/NM    MODE
DC NAME  PARENTVOL LOGVOL
SP NAME  SNAPVOL   DCO

dg voldg default   default 115000
1017856044.1141.hostname.veritas.com

dm disk1 c1t12d0s2 sliced  2591     17900352 -
dm disk2 c1t14d0s2 sliced  2591     17899056 -
dm disk3 c1t3d0s2  sliced  2591     17899056 -

v  vol1  -         ENABLED ACTIVE   4196448  ROUND     -        fsgen
pl pl1   vol1      ENABLED ACTIVE   4196448  CONCAT    -        RW
sd sd1   pl1       disk1   0        2098224  0         c1t12d0  ENA
sd sd2   pl1       disk2   0        2098224  2098224   c1t14d0  ENA

Evacuate disk1 to disk3.

# /etc/vx/bin/vxevac -g voldg disk1 disk3
# vxprint -g voldg -ht

DG NAME  NCONFIG    NLOG     MINORS   GROUP-ID
DM NAME  DEVICE     TYPE     PRIVLEN  PUBLEN   STATE
RV NAME  RLINK_CNT  KSTATE   STATE    PRIMARY  DATAVOLS  SRL
RL NAME  RVG        KSTATE   STATE    REM_HOST REM_DG    REM_RLNK
V  NAME  RVG        KSTATE   STATE    LENGTH   READPOL   PREFPLEX  UTYPE
PL NAME  VOLUME     KSTATE   STATE    LENGTH   LAYOUT    NCOL/WID  MODE
SD NAME  PLEX       DISK     DISKOFFS LENGTH   [COL/]OFF DEVICE    MODE
SV NAME  PLEX       VOLNAME  NVOLLAYR LENGTH   [COL/]OFF AM/NM     MODE
DC NAME  PARENTVOL  LOGVOL
SP NAME  SNAPVOL    DCO

dg voldg default    default  115000
1017856044.1141.hostname.veritas.com

dm disk1 c1t12d0s2  sliced   2591     17900352 -
dm disk2 c1t14d0s2  sliced   2591     17899056 -
dm disk3 c1t3d0s2   sliced   2591     17899056 -

v  vol1  -          ENABLED  ACTIVE   4196448  ROUND     -         fsgen
pl pl1   vol1       ENABLED  ACTIVE   4196448  CONCAT    -         RW
sd disk3-01l1       disk3    0        2098224  0         c1t3d0    ENA
sd sd2   pl1        disk2    0        2098224  2098224   c1t14d0   ENA

Evacuate disk2 to disk3.

# /etc/vx/bin/vxevac -g voldg disk2 disk3
# vxprint -g voldg -ht

DG NAME     NCONFIG   NLOG    MINORS   GROUP-ID
DM NAME     DEVICE    TYPE    PRIVLEN  PUBLEN   STATE
RV NAME     RLINK_CNT KSTATE  STATE    PRIMARY  DATAVOLS  SRL
RL NAME     RVG       KSTATE  STATE    REM_HOST REM_DG    REM_RLNK
V  NAME     RVG       KSTATE  STATE    LENGTH   READPOL   PREFPLEX UTYPE
PL NAME     VOLUME    KSTATE  STATE    LENGTH   LAYOUT    NCOL/WID MODE
SD NAME     PLEX      DISK    DISKOFFS LENGTH   [COL/]OFF DEVICE   MODE
SV NAME     PLEX      VOLNAME NVOLLAYR LENGTH   [COL/]OFF AM/NM    MODE
DC NAME     PARENTVOL LOGVOL
SP NAME     SNAPVOL   DCO

dg voldg    default   default 115000
1017856044.1141.hostname.veritas.com

dm disk1    c1t12d0s2 sliced  2591    17900352 -
dm disk2    c1t14d0s2 sliced  2591    17899056 -
dm disk3    c1t3d0s2  sliced  2591    17899056 -

v  vol1     -         ENABLED ACTIVE  4196448  ROUND   -      fsgen
pl pl1      vol1      ENABLED ACTIVE  4196448  CONCAT  -      RW
sd disk3-01 pl1       disk3   0       2098224  0       c1t3d0 ENA
sd disk3-02 pl1       disk3   2098224 2098224  2098224 c1t3d0 ENA

Remove the evacuated disks from VxVM control.

# vxdisk -g voldg list
DEVICE      TYPE      DISK         GROUP        STATUS
c1t3d0s2    sliced    disk3        voldg        online
c1t12d0s2   sliced    disk1        voldg        online
c1t14d0s2   sliced    disk2        voldg        online

# vxdg rmdisk disk1
# vxdg rmdisk disk2
# vxdisk rm c1t12d0
# vxdisk rm c1t14d0

Verify that the evacuated disks have been removed from VxVM control.

# vxdisk -g voldg list
DEVICE       TYPE      DISK         GROUP        STATUS
c1t3d0s2     sliced    disk3        voldg        online

Check to see whether the volume you want to move first is mounted.

# mount | grep vol1
/vol1 on /dev/vx/dsk/voldg/vol1
read/write/setuid/log/nolargefiles/dev=12dc138 on Wed Apr  
3 10:13:11 2002

Create a partition on free disk space of the same size as the volume. In this example, a 2G partition is created on disk1 (c1t12d0s1).

# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
     0. c0t0d0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
        /sbus@1f,0/SUNW,fas@e,8800000/sd@0,0
     1. c1t3d0 <QUANTUM-ATLASIV9SCA-0808 cyl 13814 alt 2 hd 4 sec 324>
        /sbus@1f,0/SUNW,fas@2,8800000/sd@3,0
     2. c1t9d0 <QUANTUM-ATLASIV9SCA-0808 cyl 13814 alt 2 hd 4 sec 324>
        /sbus@1f,0/SUNW,fas@2,8800000/sd@9,0
     3. c1t10d0 <QUANTUM-ATLASIV9SCA-0808 cyl 13814 alt 2 hd 4 sec 324>
        /sbus@1f,0/SUNW,fas@2,8800000/sd@a,0
     4. c1t11d0 <QUANTUM-ATLASIV9SCA-0808 cyl 13814 alt 2 hd 4 sec 324>
        /sbus@1f,0/SUNW,fas@2,8800000/sd@b,0
     5. c1t12d0 <QUANTUM-ATLASIV9SCA-0808 cyl 13814 alt 2 hd 4 sec 324>
        /sbus@1f,0/SUNW,fas@2,8800000/sd@c,0
     6. c1t14d0 <QUANTUM-ATLASIV9SCA-0808 cyl 13814 alt 2 hd 4 sec 324>
        /sbus@1f,0/SUNW,fas@2,8800000/sd@e,0
     7. c1t15d0 <QUANTUM-ATLASIV9SCA-0808 cyl 13814 alt 2 hd 4 sec 324>
        /sbus@1f,0/SUNW,fas@2,8800000/sd@f,0
Specify disk (enter its number): 5
selecting c1t12d0
[disk formatted]

FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> p

PARTITION MENU:
        0      - change '0' partition
        1      - change '1' partition
        2      - change '2' partition
        3      - change '3' partition
        4      - change '4' partition
        5      - change '5' partition
        6      - change '6' partition
        7      - change '7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition> 1
Part      Tag    Flag    Cylinders     Size          Blocks
  1 unassigned    wm      0            0       (0/0/0)            0
Enter partition id tag[unassigned]: 
Enter partition permission flags[wm]: 
Enter new starting cyl[0]: 
Enter partition size[0b, 0c, 0.00mb, 0.00gb]: 2.00gb
partition> l
Ready to label disk, continue? y

partition> p
Current partition table (unnamed):
Total disk cylinders available: 13814 + 2 (reserved cylinders)
Part      Tag    Flag    Cylinders     Size          Blocks
  0 unassigned    wm      0            0       (0/0/0)            0
  1 unassigned    wm      0 -  3236    2.00GB  (3237/0/0)   4195152
partition> q

Copy the data on vol01 to the newly created disk partition.

# dd if=/dev/vx/dsk/voldg/vol01 of=/dev/dsk/c1t12d0s1

In the /etc/vfstab file, remove the following entry.

/dev/vx/dsk/voldg/vol1 /dev/vx/rdsk/voldg/vol1 /vol1 vxfs 4 yes rw

Replace it with an entry for the newly created partition.

/dev/dsk/c1t12d0s1 /dev/rdsk/c1t12d0s1 /vol01 vxfs 4  yes rw

Mount the disk partition.

# mount -F vxfs /dev/dsk/c1t12d0s1 /vol01

Remove vol01 from VxVM.

# vxedit -rf rm /dev/vx/dsk/voldg/vol01

To complete the procedure, follow the remaining steps.