====== Putting tce on an existing RAID or LVM ====== Starting with V 4.1 you can have your tce directory on a RAID or an LVM. To accomplish this, we need to be able to load RAID or LVM drivers before tc-config scans for the tce directory. The bootcode **pretce=dev/dir** will allow us to preload a set of extensions. This bootcode does not have a default directory name. If you omit the **/dir** portion, tc/mc will look for **onboot.lst** and **optional/** in the partition's root directory. The following steps assume that the boot partition is **/dev/sda1**, the directory to use is **/pre** and that the logical volume we will be using is **dm-0**. This has also been tested with **md126** RAID 1 device. It is based on my CentOS 5 installation that boots off /dev/sda1 and has 2 logical volumes ( root and swap ). ==== Initial Setup ==== We need to know the boot partition and directory where we are going to store the LVM extensions. Here we are going to be booting out of **/dev/sda1** and loading the lvm2 extensions out of **/mnt/sda1/pre**: * Boot with the options: **tce=sda1/pre**. * Run **tce-load -iw mdadm**. * Run **tce-load -iw lvm2**. * Run **vgchange -ay**. * Identify the RAID volume or LVM name in /mnt that contains the filesystem you want to contain the tce directory. Mine is **dm-0** or **md126**. * Reboot. ==== Create mdadm-boot.tcz ==== Starting with dCore and Core 5.1 mdadm-boot.sce is no longer needed. Instead, you can put the line **mdadm -A --scan ; sleep 2** into an executable shell script named **onpre.sh** in the pretce directory. The shell script **onpre.sh** is run after all the pretce packages are loaded. We need an extension that activates the RAID volumes. The following script will create it. #!/bin/sh WORK=work-mdadm-boot DIR=$WORK/usr/local/tce.installed PKG=mdadm-boot FILE=$PKG.tcz cd /tmp rm -rf $WORK $FILE mkdir -p $DIR echo -e "#!/bin/sh\n/usr/local/sbin/mdadm -A --scan ; sleep 1" > $DIR/$PKG chmod -R 775 $WORK chown -R root:staff $WORK mksquashfs $WORK/ $FILE * Run **tce-load -iw squashfs-tools**. * Run **mount /mnt/sda1**. * Save the above script to **/tmp/mkmdadm-boot**. * Run **cd /tmp**. * Run **sh mkmdadm-boot**. * Mv **mdadm-boot.tcz** to **/mnt/sda1/pre/optional/**. * Add the line **mdadm-boot.tcz** to the end of **/mnt/sda1/pre/onboot.lst**. * If you do not want the pretce device to remain mounted, be sure to add the **copy2fs.flg** file to the pretce directory. ==== Create lvm2-boot.tcz ==== Starting with dCore and core 5.1 lvm2-boot.sce is no longer needed. Instead, you can put the line **vgchange -ay ; sleep 2** into an executable shell script named **onpre.sh** in the pretce directory. The shell script **onpre.sh** is run after all the pretce packages are loaded. We need an extension that activates the lvm2 volumes. The following script will create it. #!/bin/sh WORK=work-lvm2-boot DIR=$WORK/usr/local/tce.installed PKG=lvm2-boot FILE=$PKG.tcz cd /tmp rm -rf $WORK $FILE mkdir -p $DIR echo -e "#!/bin/sh\nsleep 1\n/usr/local/sbin/vgchange -ay\nsleep 1" > $DIR/$PKG chmod -R 775 $WORK chown -R root:staff $WORK mksquashfs $WORK/ $FILE * Run **tce-load -iw squashfs-tools**. * Run **mount /mnt/sda1**. * Save the above script to **/tmp/mklvm2-boot**. * Run **cd /tmp**. * Run **sh mklvm2-boot**. * Mv **lvm2-boot.tcz** to **/mnt/sda1/pre/optional/**. * Add the line **lvm2-boot.tcz** to the end of **/mnt/sda1/pre/onboot.lst**. * If you do not want the pretce device to remain mounted, be sure to add the **copy2fs.flg** file to the pretce directory. ==== Boot Entry ==== I am not going to instruct you here on how to add a boot entry to your boot loader config file. You need to be able to boot tc/mc from your hard drive before you can add additional boot options. The format of this entry will depend on the bootloader you are currently using. For RAID, add the boot options **pretce=sda1/pre tce=md126**. For LVM, add the boot options **pretce=sda1/pre tce=dm-0**. Reboot and verify that /opt/.tce_dir contains **/mnt/md126/tce**, or **/mnt/dm-0/tce** , or whatever is correct for your machine.