Set up PXE boot VM

From HallCWiki
Jump to: navigation, search

PXE boot VM

  • The ROCs and VTPs are booted using PXEboot. The PXEboot is hosted in a virtual machine located at the Hall ESX clusters. The VM name is "cdaqpxe.jlab.org"

Set up the PXE boot

  • Install required packages: yum install nfs-utils tftp-server syslinux-tftpboot syslinux
  • Enable tftp as root: (an explanation about tftp.service and tftp.socket: [1])
systemctl enable tftp.socket
systemctl start tftp.socket
  • Create PXE boot directory:
cd /tftpboot
mkdir linux-diskless
  • Set up PXE boot configurations
cd /tftpboot/linux-diskless
cp /usr/share/syslinux/pxelinux.0 . (This turns out not working. Instead, do: scp root@cdaqfs1:/tftpboot/linux-diskless/pxelinux.0 )
scp -r root@cdaqfs1:/tftpboot/linux-diskless/pxelinux.cfg .
  • Copy x86_64 boot images from cdaqfs1 to /tftpboot/linux-diskless/:
scp -r root@cdaqfs1:/tftpboot/linux-diskless/boot .
  • Copy armv7 boot images from cdaqfs1 to /tftpboot/linux-diskless/:
scp -r root@cdaqfs1:/tftpboot/linux-diskless/CentOS7-armv7-Diskless .
  • Edit tftp systemd configuration file to let the tftp directory point to the /tftpboot:
vi /usr/lib/systemd/system/tftp.service

and change:

ExecStart=/usr/sbin/in.tftpd -s /tftpboot

Set up the filesystem and NFS export

x86_64

  • The root/ NFS mount is defined in /tftpboot/linux-diskless/pxelinux.cfg/default
  • Copy the file system over from cdaqfs1 to cdaqpxe:
cdaqfs1: /diskless/CentOS7/x86_64
  • Change the root mount NFS server IP to cdaqpxe in /tftpboot/linux-diskless/pxelinux.cfg/default
  • Change the snapshot mount NFS server at /diskless/CentOS7/x86_64/root/etc/sysconfig/readonly-root
  • Copy the home mount directory over from cdaqfs1 to cdaqpxe:
cdaqfs1: /home/diskless/hccoda
  • Somehow, CODA running at coda@cdaql* is connecting to the ROCs using startROC.sh scripts under /home/coda/coda/coda_scripts/. So /home/coda/ needs to be mounted on the ROCs as well. Create a soft link
cdaqfs: ln -s /coda-home /home/diskless/coda 
  • Change the home mount NFS server at /diskless/CentOS7/x86_64/root/etc/auto.master.d/auto.home
  • Set up the NFS exports at cdaqpxe: /etc/exports

Switch from cdaqfs1 to cdaqfs

  • Create "cdaqfs" dir under root@cdaqpxe:/diskless/CentOS7/x86_64/root/net
  • Remove "coda.autofs" and "cdaqfs1.autofs" in /diskless/CentOS7/x86_64/root/etc/auto.master.d/
  • Add "cdaqfs.autofs" and "auto.cdaqfs" in /diskless/CentOS7/x86_64/root/etc/auto.master.d/
  • Restart autofs at the crate as root: systemctl restart autofs

armv7

  • change the tftp server IP by interrupting the VTP boot process to get the 'Zynq" prompt. Then use "setenv" and "saveenv" to modify the tftp server ip
  • The rest of the changes are similar to "x86_64" listed above

Switch from cdaqfs1 to cdaqfs

  • Remove "coda.autofs" and "cdaqfs1.autofs" in /diskless/CentOS7/armv7/root/etc/auto.master.d/
  • Add "cdaqfs.autofs" and "auto.cdaqfs" in /diskless/CentOS7/armv7/root/etc/auto.master.d/
  • Restart autofs at the crate as root: systemctl restart autofs