
The firmware updating process can be done during discovery or at a later time. The steps are:
For example:
#cd /install/firmware/
#ls -lh
total 197M
-rw-r--r-- 1 root root 197M Oct 10 08:10 01TV810_061_054.img
-rwxr-xr-x 1 root root 149 Oct 13 07:36 runme.sh
*#cat runme.sh
echo "================Start update"
/bin/update_flash -f ./01TV810_061_054.img
*# chmod +x runme.sh
*# tar -zcvf firmware-update.tgz .
./
./runme.sh
./01TV810_061_054.img
tar: .: file changed as we read it
If you want to update the firmware during the node discovery process, ensure you have already added a dynamic range to the networks table and run "makedhcp -n". Then update the chain table to do both bmcsetup and the firmware update:
chdef node001 chain="runcmd=bmcsetup,runimage=http://mgmtnode/install/firmware/firmware-update.tgz,shell"
If you are updating the firmware at a later time (i.e. not during the node discovery process), tell nodeset that you want to do the firmware update, and then set currchain to drop the nodes into a shell when they are done:
nodeset node001 runimage=http://mgmtnode/install/firmware/firmware-update.tgz,boot
This is the process for setting up PowerKVM with xCAT
Since the powerkvm has not been released yet, you need to following steps before copycds:
mkdir /tmp/pkvm_iso
mount –o loop /iso/ibm-powerkvm-201403250837.iso /tmp/pkvm_iso
cat /tmp/pkvm_iso/.discinfo
1395751343.334203
IBM_PowerKVM 2.1
ppc64
1
Edit the file: /opt/xcat/lib/perl/xCAT/data/discinfo.pm
replace the follow line
"1394549807.920540" => "pkvm2.1", # ppc64
with the num get from /tmp/pkvm_iso/.discinfo.
The line will be similar to:
"1395751343.334203" => "pkvm2.1", # ppc64
Then run copycds
copycds /iso/ibm-powerkvm-201403250837.iso
To check the osimage object created by copycds, run the following:
lsdef -t osimage
pkvm2.1-ppc64-install-compute (osimage)
mkdef n1 groups=all,kvm cons=ipmi mgt=ipmi
chdef n1 bmc=<bmc ip> bmcpassword=<bmc password>
chdef n1 mac=<xx:xx:xx:xx:xx:xx> installnic=mac primarynic=mac
chdef n1 tftpserver=<ip_of_xCAT_MN> conserver=<ip_of_xCAT_MN> nfsserver=<ip_of_xCAT_MN>
Note: The discovery is not supported. So the mac address must be obtained by user.
define the name domain for this cluster
chdef -t site domain=vmcluster.com
Define IP address for the node
chdef n1 ip=x.x.x.x
makedns –n
Config DNS server, the resolv.conf file will be similar to:
cat /etc/resolv.conf
domain vmcluster.com
search vmcluster.com
nameserver <ip_of_xCAT_MN>
nslookup n1
Server: <ip_of_xCAT_MN>
Address: <ip_of_xCAT_MN>
Name: n1.vmcluster.com
Address: <ip_of_node_n1>
chdef n1 netboot=petitboot
makedhcp -n
makedhcp -a
nodeset n1 osimage=pkvm2.1-ppc64-install-compute
n1: install pkvm2.1-ppc64-compute
rsetboot n1 net
rpower n1 on/reset
mkdef vm1 groups=vm,all
chdef vm1 vmhost=pkvm01
chdef vm1 tftpserver=<ip_of_xCAT_MN> conserver=<ip_of_xCAT_MN> nfsserver=<ip_of_xCAT_MN>
chdef vm1 ip=x.x.x.x
makehosts vm1
makedns -n
makedns -a
chdef vm1 mgt=kvm cons=kvm
chdef vm1 vmcpus=2 vmmemory=4096 vmnics=br0 vmstorage=phy://dev/sdd
mkvm vm1
For more information about modifying VM attributes, pls refer to Define Virtual Machines attributes
After you download the latest ubuntu LE ISO, pls run the following command to create osimage objects.
copycds trusty-server-ppc64el.iso
You can check the /install/<ubuntu-version>/ppc64el directory have been created. And you can find the osimage objects with:</ubuntu-version>
lsdef -t osimage
ubuntu14.04-ppc64el-install-compute (osimage)
ubuntu14.04-ppc64el-install-kvm (osimage)
ubuntu14.04-ppc64el-netboot-compute (osimage)
ubuntu14.04-ppc64el-statelite-compute (osimage)
And in order to boot from network, you need to download the mini.iso from "http://ports.ubuntu.com/ubuntu-ports/dists/trusty/main/installer-ppc64el/current/images/netboot/",(pls use http://ports.ubuntu.com/ubuntu-ports/dists/utopic/main/installer-ppc64el/current/images/netboot/mini.iso for ubuntu 14.10) then mount the mini.iso to a tmp directory:
mkdir /tmp/iso
mount -o loop mini.iso /tmp/iso
ls /tmp/iso/install
initrd.gz vmlinux
Then, copy the file /tmp/iso/install/initrd.gz to /install/<ubuntu-version>/ppc64el/install/netboot.</ubuntu-version>
mkdir -p /install/<ubuntu-version>/ppc64el/install/netboot
cp /tmp/iso/install/initrd.gz /install/<ubuntu-version>/ppc64el/install/netboot
Make sure the grub2 had been installed on your Management Node:
rpm -aq | grep grub2
grub2-xcat-1.0-1.noarch
Note: At present, the modules for xCAT shipped grub2 can not support ubuntu LE smoothly. So the following steps needed to complete the grub2 setting.
rm /tftpboot/boot/grub2/grub2.ppc
cp /tftpboot/boot/grub2/powerpc-ieee1275/core.elf /tftpboot/boot/grub2/grub2.ppc
/bin/cp -rf /tmp/iso/boot/grub/powerpc-ieee1275/elf.mod /tftpboot/boot/grub2/powerpc-ieee1275/
Set 'netboot' attribute to 'grub2'
chdef vm1 netboot=grub2
Config password for root:
chtab key=system passwd.username=root passwd.password=xxxxxx
Create grub2 boot configuration fileby running nodeset:
nodeset vm1 osimage=ubuntu14.04-ppc64el-install-compute
Power on the VM to start OS installing
rpower vm1 on
On the pkvm host, pls make sure firewalld service had been stopped.
chkconfig firewalld off
Note: Forwarding request to systemctl will disable firewalld.service.
rm /etc/systemd/system/basic.target.wants/firewalld.service
rm /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service
Then, run wvid vm1 on MN
wvid vm1
The steps below are used to provisioning ubuntu LE for powerNV.
copycds trusty-server-ppc64el.iso
lsdef -t osimage
ubuntu14.04-ppc64el-install-compute (osimage)
ubuntu14.04-ppc64el-install-kvm (osimage)
ubuntu14.04-ppc64el-netboot-compute (osimage)
ubuntu14.04-ppc64el-statelite-compute (osimage)
And in order to boot from network, you need to download the mini.iso from "http://ports.ubuntu.com/ubuntu-ports/dists/trusty/main/installer-ppc64el/current/images/netboot/",(pls use http://ports.ubuntu.com/ubuntu-ports/dists/utopic/main/installer-ppc64el/current/images/netboot/mini.iso for ubuntu 14.10) then mount the mini.iso to a tmp directory:
mkdir /tmp/iso
mount -o loop mini.iso /tmp/iso
ls /tmp/iso/install
initrd.gz vmlinux
Then, copy the file /tmp/iso/install/initrd.gz to /install/<ubuntu-version>/ppc64el/install/netboot.</ubuntu-version>
mkdir -p /install/<ubuntu-version>/ppc64el/install/netboot
cp /tmp/iso/install/initrd.gz /install/<ubuntu-version>/ppc64/installel/netboot
mkdef n1 groups=all,kvm cons=ipmi mgt=ipmi
chdef n1 bmc=<bmc ip> bmcpassword=<bmc password>
chdef n1 mac=<xx:xx:xx:xx:xx:xx> installnic=mac promarynic=mac
chdef n1 tftpserver=<ip_of_xCAT_MN> conserver=<ip_of_xCAT_MN> nfsserver=<ip_of_xCAT_MN>
chdef n1 ip=x.x.x.x
makedns –n
makeconservercf
makedhcp -n
makedhcp -a
nodeset n1 osimage=ubuntu14.04-ppc64el-install-compute
n1: install ubuntu14.04-ppc64el-compute
rsetboot n1 net
rpower n1 on/reset