FAI kasutamine Debianiga

Allikas: Kuutõrvaja

Sissejuhatus

FAI (Fully Automatic Installation) http://www.fai-project.org/ süsteem võimaldab korraldada automaatset operatsioonisüsteemi paigaldamist. Sellisest asjakorraldusest võib olla kasu nt järgnevatel juhtumitel

  • ülesandeks on hallata suhteliselt suurt hulka arvuteid (kümneid või sadu)
  • eeldusel, et automaatne paigaldus on hästi ettevalmistatud ja arvuti nö iseloom seda võimaldab, pole tarvis põhimõtteliselt kõnealust arvutit varundada
  • arvutil on mingit sorti konsooli kasutamise võimalus ja teda saab võrgust alglaadida, kuid ei saa alglaadida lokaalselt meedialt

FAI süsteem koosneb üldiselt sellistest komponentidest

  • FAI server (sisaldab dhcp, tftp ja nfs servereid)
  • FAI klientidest
                  _____
                 |     | FAI server: dhcp, tftp, nfs
                 |_____|
                    |
                    |
            ---|----|-------|------------|---
               |            |            |
             __|__        __|__        __|__
            |     |      |     |      |     |  ....
            |_____|      |_____|      |_____|
             
             smtp1        smtp2        squid
                       FAI kliendid

ning töötab selliselt, et FAI kliendi käivitamisel sooritatakse selline järgnevus

  • FAI klient saab oma MAC aadressi alusel endale dhcp serverist võrguseadistused sh domeeninime (st hostname'i)
  • FAI klient kopeerib FAI serverilt tuuma ja initramfs tõmmise
  • FAI klient ühendab FAI serverilt omale külge juurfailisüsteemi, seda süsteemi kasutatakse kliendi ettevalmistamise keskkonnana
  • FAI klient käivitab installeri, mis töötab FAI serveril asuva seadistuse juhtimisel
  • FAI kliendi lokaalsele kõvakettale paigaldatakse operatsioonisüsteem ja alglaadur (ingl. k. bootloader)

Järgmisel FAI kliendiks oleva arvuti alglaadimisel peab jälgima, et ei korduks soovimatult operatsioonisüsteemi paigaldamise protseduur ja paigaldatud süsteem käivituks lokaalselt kõvakettalt.

See kui efektiivseks kujuneb FAI kasutamine sõltub sellest, kui palju vaeva näha FAI serveri seadistamisel, eriti nende tegevuste kirjeldamisel, mis seadistavad kliendid.

Praktiliselt on võimalik FAI serveri juhtimisel FAI kliendil seadistada muu seas

  • kõvakettakasutus (fdisk partitsioonid, LVM, tarkvaraline raid, failisüsteemid)
  • milline tarkvara (.deb paketid) paigaldatakse lisaks nö alussüsteemile (ingl. k. base system)
  • võrguparameetrid
  • kostümiseerida paigaldatud tarkvara seadistused (nt kopeerida sobiva sisuga /etc/squid/squid.conf)
  • seadistada initramfs (nt korraldada, et initramfs oskab alglaadida süsteemi LVM'ilt juurfailisüsteemilt, multipath seadmelt või mõlemalt)

FAI kasutamisel tekitatakse operatsioonisüsteem nö Debiani paketi ja üksiku faili (tavaliselt seadistusfaili) täpsusega. St ei toimu ettevalmistatud operatsioonisüsteemi tõmmise plokk-haaval kopeerimist. Sellise lähenemise eeliseks on suurem paindlikkus töötava süsteemi haldamisel, kannatab aga uue arvuti tekitamise kiirus kuigi praktiliselt mitte oluliselt (alltoodud Squid arvuti näites kestab paigaldus 7-8 minutit kaasaegsel riistvaral töötavale mõõduka ressursiga Xeni HVM domeenile).

FAI süsteem sarnaneb RedHati KickStartile, Solarise JumpStartile ja Suse Autoyastile.

Eesmärk

Kuna Xen keskkonnas on mõnus katsetada erinevate tehnoloogiatega, siis eesmärgiks on ettevalmistada Xen PV (paravirtuaalne) domU sees töötav FAI server ning näidata kuidas erinevaid FAI kliente kasutada

  • Xen HVM domU - kõige lihtsam ja kiirem katsetuste tegemiseks
  • Xen PV domU - kui juhtumisi on kombeks pidada Xen PV abil teenuseid, siis sellest juhtumist võiks olla praktilist abi
  • füüsiline arvuti

Kõigil juhtumitel FAI klient alglaadib ennast võrgust PXE abil st sooritatakse DHCP -> TFTP -> NFS järgnevus.

FAI serveril töötavad koos sellised teenused

  • DHCP server
  • TFTP server
  • NFS server

Täpsemalt, eesmärgiks on ettevalmistada FAI server ja sellelt paigaldada selliste omadustega klient

  • kõvakettakasutus
 /boot - /dev/hda1
 LVM PV system - /dev/hda2
 swap - LVM LV /dev/system/swap
 / - LVM LV /dev/system/system
  • domeeninimi - squid.auul
  • Squid, kostümiseeritud /etc/squid/squid.conf

FAI serveri ettevalmistamine

FAI serverisse tuleb paigaldada pakett, mis paigaldab lisaks vajalikud sõltuvused

 # apt-get install fai-quickstart

Peale tarkvara paigaldamist tuleb /etc/fai/fai.conf seadistusfail üle vaadata, tõenäoliselt vaikeväärtused sobivad

 LOGUSER=
 FAI_LOGPROTO=ssh
 FAI_CONFIGDIR=/srv/fai/config
 MNTPOINT=/media/mirror
 FAI=/var/lib/fai/config

FAI NFS serveriga seotud seadistused on kirjeldatud failis make-fai-nfsroot.conf, kus 192.168.10.199:9999 on apt-proxy

 NFSROOT=/srv/fai/nfsroot
 TFTPROOT=/srv/tftp/fai
 FAI_DEBOOTSTRAP="lenny http://192.168.10.199:9999/debian"
 FAI_ROOTPW='$1$kBnWcO.E$djxB128U7dMkrltJHPf6d1'
 FAI_DEBOOTSTRAP_OPTS="--exclude=dhcp-client,info"

FAI serveri sh NFS komponendi ettevalmistamiseks tuleb öelda

 # fai-setup -v

Selle tulemusena valmistatakse ette

  • NFS juurikas, mida klientide paigaldamisel kasutatakse abistava keskkonnana, vastav logi salvestatakse faili /var/log/fai/fai-setup.log; NFS juurika õnnestumises on võimalik natuke veenduda nt selliselt
 # chroot /srv/fai/nfsroot/live/filesystem.dir
  • tftp serveri kataloog
 # ls -l /srv/tftp/fai/
 total 10888
 -rw-r--r-- 1 root root 9347085 Feb 14 16:13 initrd.img-2.6.26-2-amd64
 -rwxr-xr-x 1 root root   15820 Feb 14 16:13 pxelinux.0
 drwxr-xr-x 2 root root    4096 Feb 14 16:13 pxelinux.cfg
 -rw-r--r-- 1 root root 1755760 Feb 11 05:01 vmlinuz-2.6.26-2-amd64

Ainult nfsroot keskkonna ülesehitamiseks sobib öelda

 # make-fai-nfsroot -v

Nimeserveri ettevalmistamine

Selles keskkonnas, kus FAI'd kasutatakse võiks olla nimeserver ning seal olema kirjeldatud kliendi domeeninimi squid.auul

DHCP serveri ettevalmistamine

DHCP serveriks sobib kasutada sellise seadistusfaili /etc/dhcp3/dhcpd.conf

 deny unknown-clients;
 option dhcp-max-message-size 2048;
 use-host-decl-names on;
 
 subnet 192.168.10.0 netmask 255.255.255.0 {
   option routers 192.168.10.254;
   option domain-name "auul";
   option domain-name-servers 192.168.10.254;
   option time-servers faiserver;
   option ntp-servers faiserver;
   server-name faiserver;
   next-server faiserver;
   filename "pxelinux.0";
 }
 
 host squid {
    hardware ethernet 70:01:68:01:02:20;
    fixed-address squid;
    option host-name "squid";
 }

TFTP serveri ettevalmistamine

TFTP serveri jaoks peab /etc/initd.conf failis sisalduma rida ning initd deemon peab käima

 tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /srv/tftp/fai

Sobiva PXE seadistuse genereerimiseks tuleb öelda

 # fai-chboot -IFv squid

Tulemusena tekitatakse squid jaoks sobib PXE seadistusfail /srv/tftp/fai/pxelinux.cfg/C0A80AC8

 # generated by fai-chboot for host squid with IP 192.168.10.200
 default fai-generated
 
 label fai-generated
 kernel vmlinuz-2.6.26-2-amd64
 append initrd=initrd.img-2.6.26-2-amd64 ip=dhcp root=/dev/nfs nfsroot=/srv/fai/nfsroot boot=live \
   FAI_FLAGS=verbose,sshd FAI_ACTION=install

kus on iseloomulikud

  • FAI_FLAGS - kontrollib, milliste omadustega kliendi paigaldamise keskkonda kasutatakse, nt sshd tähendab, et keskkonda saab kliendi paigaldamise ajal ssh abil sisse logida, root ja parool fai vaikimisi
  • FAI_ACTION - kontrollib, millist tegevust sooritatakse, alternatiiviks oleks nt sysinfo, mis võimaldab tutvuda paigaldatava arvuti omadustega

NFS serveri ettevalmistamine

NFS serveri /etc/exports seadistatakse tõenäoliselt automaatselt, aga ta peaks sisaldama midagi sellist

 /srv/fai/config 192.168.10.0/255.255.255.0(async,ro,no_subtree_check)
 /srv/fai/nfsroot 192.168.10.0/255.255.255.0(async,ro,no_subtree_check,no_root_squash)

FAI kliendi seadistuse ettevalmistamine

FAI kliendi käivitamisel kliendi paigaldamise eesmärgil alglaaditakse süsteem nii, et tuum, initramfs ja juurfailisüsteem võetakse võrgust FAI serverilt. Nii külge ühendatud juurfailisüsteemi kasutatakse kliendi paigaldamist abistava keskonnana. Selle keskkonna utiliite kasutatakse kliendi lokaalse salvestusressursi ettevalmistamisel ja sinna peale tarkvara ja tarkvara seadistuste kopeerimisel.

FAI klient identifitseeritakse nt kliendi dhcp'st saadud domeeninime abil klient ja rakendatakse talle vastavate nn klassidega (ingl. k. class) seotud seadistusi.

FAI serveris kirjeldatud klientide seadistused asuvad kataloogis /srv/fai/config, alustuseks sobib kasutada FAI klientide näidis-seadistusi kopeerides

 # cp -a /usr/share/doc/fai-doc/examples/simple/* /srv/fai/config
  • class - vastavused klientide hostname'ide ja klasside vahel, ühe kliendiga võib olla seotud ka mitu klassi (nt FAIBASE, SQUID)
  • debconf -
  • disk_config - kõvaketta seadistused
  • files - kostümiseeritud seadistusfailid, nt Squidi /etc/squid/squid.conf
  • hooks -
  • package_config - paigaldatavad/eemdaldatavad paketid
  • scripts -

class

Konkreetse hostiga seotud klassid teeb kindlaks skript class/50-host-classes, nt

 #! /bin/bash
 # assign classes hosts
 
 case $HOSTNAME in
   squid*)
       echo "FAIBASE SQUID" ;;
   *)
       echo "FAIBASE DHCPC DEMO" ;;
 esac
 
 (ifclass I386 || ifclass AMD64) && echo GRUB 
 exit 0

Antud juhul squid.auul klient on seotud klassidega FAIBASE ning SQUID.

Kõigi muude kataloogide sees on klassinimelisi faile, mille sisu kasutatakse antud kliendi puhul, nt kõvakettaseadistustena kasutatakse faili disk_config/SQUID ja /etc/squid/squid.conf failina kasutatakse faili files/etc/squid/squid.conf/SQUID.

disk_config

Kõvaketta seadistused on määratletud antud juhul faili disk_config/SQUID sisuga

 # example of new config file for setup-storage
 #
 # <type> <mountpoint> <size>   <fs type> <mount options> <misc options>
 
 disk_config hda  bootable:1
 primary        /boot  500     ext3      rw
 primary        -      4096-   -         -
 disk_config lvm
 vg  system  hda2
 system-swap    swap   2048    swap      sw
 system-system    /      2048    ext3      rw

package_config

Kuna tõenäoliselt kõigis selle FAI süsteemi kontrolli all olevates arvutites kasutatakse Exim4 asemel Postfixi, siis sobib kasutada failis package_config/FAIBASE rea

 exim4

asemel rida, miinus paketi nime järel tähendab paketi eemaldamist

 postfix exim4-

files ja scripts

Kostümiseeritud Squidi seadistusfaili /etc/squid/squid.conf kasutamiseks tuleb kostümeeritud versioon paigutada faili files/etc/squid/squid.conf/SQUID ning lisada skripti, nt scripts/FAIBASE/10-misc lõpuossa teiste fcopy'de juurde rea 'fcopy -ir /root' järele rida

 fcopy -i /etc/squid/squid.conf

Lisaks, selleks, et LVM voluumi saaks kasutada juurfailisüsteemi jaoks peab olema fail files/etc/initramfs-tools/modules/SQUID sisuga

 dm_mod

ning lisada scripts/LAST/50-misc lõpuossa update-initramfs, sedasi

 ..
 $ROOTCMD update-initramfs -k all -u
 exit $error

Xen HVM domU ettevalmistamine

FAI katsetamises sobib kasutada Xen HVM domU'd, nt sellise seadistusfailiga /etc/xen/squid.cfg

 name="squid"
 memory=128
 vif  = [ 'mac=70:01:68:01:02:20,bridge=xenbr0' ]
 vcpus="1"
 
 kernel = '/usr/lib/xen-3.2-1/boot/hvmloader'
 device_model = "/usr/lib/xen-3.2-1/bin/qemu-dm"
 builder = 'hvm'
 disk    = [ 'phy:/dev/c_data/squid,ioemu:hda,w' ]
 
 cdrom="/dev/hdc"
 boot='n'  #d is cdrom boot, c is disk boot.
 vnc="1"
 vncviewer="1"
 sdl="0" 
 vcpus=1
 pae=1
 acpi=0
 apic=0

Peale süsteemi paigaldamist tuleb lokaalselt kõvakettalt alglaadimiseks kasutada rida

 boot='c'

Xen HVM domU kliendi installeerimine

Xen HVM domU kliendi installeerimiseks tuleb käivitada vastav domU öeldes

 # xm create /etc/xen/squid.cfg

ning ühenduda külge vnc kliendiga, nt

 $ vncviewer 192.168.10.251:5901

ning jälgida sündmuste edenemist

Fai-1.gif

FAI kliendi tekkimist saab jälgida logides peale klienti sisse peale ta installeerimiseks käivitamist, vaikimisi on root kasutaja parool 'fai'

 squid:~# df -h
 Filesystem            Size  Used Avail Use% Mounted on
 rootfs                 61M  3.2M   58M   6% /
 udev                   10M   40K   10M   1% /dev
 192.168.10.199:/srv/fai/nfsroot
                       4.0G  2.2G  1.6G  59% /live/image
 tmpfs                  61M  3.2M   58M   6% /live/cow
 aufs                   61M  3.2M   58M   6% /
 tmpfs                  61M     0   61M   0% /live
 192.168.10.199:/srv/fai/config
                       4.0G  2.2G  1.6G  59% /var/lib/fai/config
 /dev/mapper/system-system
                       2.0G   99M  1.8G   6% /target
 /dev/hda1             479M   11M  444M   3% /target/boot

Siit on ka hästi näha, et FAI kliendi ettevalmistamine toimub selliselt, et üle võrgu NFS pealt booditud nö paigaldamist abistavale süsteemile on külge ühendatud lokaalne storage kataloogi /target alla ja sinna valmistatakse süsteemi ette.

FAI klient logib oma tegevusi omajagu, lisaks on need logid olemas paigaldatud süsteemis /var/log/fai kataloogis

 squid:~# find -type f /tmp/fai
 /tmp/fai/software.log
 /tmp/fai/fcopy.log
 /tmp/fai/debconf.data
 /tmp/fai/debconf.log
 /tmp/fai/fstab
 /tmp/fai/format.log
 /tmp/fai/disk_var.sh
 /tmp/fai/variables.log
 /tmp/fai/status.log
 /tmp/fai/FAI_CLASSES
 /tmp/fai/dhclient.log
 /tmp/fai/boot.log
 /tmp/fai/dmesg.log
 /tmp/fai/fai.log

Xen PV domU klient

Xen PV domU kliendi kasutamiseks tuleb pisut enam ettevalmistusi teha ja arvestada selliseid asjaolusid

  • Xeni PV domU FAI kliendi tuum peab sisaldama aufs ja nn boot=live tuge
  • Kasutatava FAI serveri NFSROOT peab sisaldama selle tuumaga sobivaid (st selle tuuma) mooduleid, millega PV domU FAI klienti paigaldamiseks algalaaditakse
  • Xeni PV domU FAI kliendi domU seadistused peavad lisama sobivad tuuma parameetrid
  • Xen PV domu FAI kliendi puhul ei ole tavaliselt tarvis plokkseadmeid partitsiooneerida

Xeni tuuma ettevalmistamine

Kuna FAI kasutamiseks peab tuum, õigemini initramfs sisaldama aufs ja nn boot=live tuge ja ehk on kõige selgem kui kõik Xen süsteemis töötavad operatsioonisüsteemi eksemplarid (so dom0 ja domU'd) kasutavad sama tuuma ja initramfs'i, siis peavad dom0 peale olema paigaldatud paketid live-initramfs, aufs-tools ja aufs-modules-2.6-xen-amd64

 # apt-get install aufs-modules-2.6-xen-amd64 aufs-tools live-initramfs

Tuuma moodulid tuleb lisaks kopeerida FAI serveri juurde /lib/modules kataloogi (nagu tegelikult kõigisse teistessegi domU'desse).

FAI serveri NFSROOT ettevalmistamine

Kui FAI serveri NFSROOT on moodustatud varem kui süsteemi on lisatud aufs ja live-initramfs tugi, tuleb kopeerida NFSROOT tuuma moodulite juurde lisandunud moodulid, nt

 # rsync -avH /lib/modules/2.6.26-2-xen-amd64/ /srv/fai/nfsroot/live/filesystem.dir/lib/modules/2.6.26-2-xen-amd64/

Xeni PV domU ettevalmistamine

 name="postfix-pv"
 kernel="/boot/vmlinuz-2.6.26-2-xen-amd64"
 ramdisk="/boot/initrd.img-2.6.26-2-xen-amd64"
 root="/dev/xvda1"
 memory=384
 disk=['phy:/dev/c_data/postfix_pv,xvda1,w',
   'phy:/dev/c_data/postfix_pv_swap,xvda2,w' ]
 vif  = [ 'mac=70:01:68:01:02:02,bridge=xenbr0' ]
 vcpus="1"
 # extra='xencons=tty'
 extra='xencons=tty ip=dhcp root=/dev/nfs nfsroot=/srv/fai/nfsroot boot=live \
   FAI_ACTION=install FAI_FLAGS=verbose,sshd'
 
 nfs_server = '192.168.10.199'
 on_poweroff="destroy"

Xen PV FAI kliendi seadistuste ettevalmistamine

Xen PV FAI kliendi seadistused erinevad teatud määral tavalise nö riistvaralise kliendi omadest, nt kõvaketta ettevalistamise osas. Xen'i PV domU kõvakettad ei vaja üldiselt partitsioneerimist, piisab moodustada ainult failisüsteemid.

Selleks sobib kasutada sellist hook'i

 # cat hooks/partition.XENU
 #!/bin/bash
 
 [ -f $LOGDIR/our.skip.partition ] && exit 0
 
 for our_cl in $classes; do
   [ $our_cl = "XENU" ] && continue
   [ -f $FAI/hooks/partition.$our_cl ] && exit 0
 done
 
 mke2fs -j /dev/xvda1 > /dev/null
 mkswap /dev/xvda2 > /dev/null
 
 cat > /tmp/fai/fstab <<EOF
 /dev/xvda1 / ext3 defaults 0 0
 /dev/xvda2 none swap sw 0 0
 EOF
 
 # echo "#!" > $diskvar
 touch $LOGDIR/skip.partition

class juures on vaja lisada Xen PV domU'dele juurde XENU.

Xen PV FAI kliendi paigaldamine

Xen PV domU keskkonnana töötava FAI kliendi paigaldamisel kasutatakse alglaadimisel domU seadistusfailis näidatud tuuma ja initramfs'i, dhcp serverilt saadakse ip aadress (ja domeeninimi), seejärel ühendatakse juurfailisüsteem külge FAI serverilt. Seetõttu on oluline, et alglaadimiseks kasutatud tuum ja initramfs ning FAI serveri NFSROOT juures olevad tuuma moodulid oleksid samast komplektist.

 # xm create -c postfix-pv.cfg

DHCP settingute osa kohta esitatakse midagi sellist

 ...
 IP-Config: eth0 hardware address 70:01:68:01:02:02 mtu 1500 DHCP RARP
 IP-Config: eth0 guessed broadcast address 192.168.10.255
 IP-Config: eth0 complete (from 192.168.10.199):
  address: 192.168.10.202   broadcast: 192.168.10.255   netmask: 255.255.255.0   
  gateway: 192.168.10.254   dns0     : 192.168.10.254   dns1   : 0.0.0.0         
  host   : postfix
  domain : auul                                                            
  rootserver: 192.168.10.199 rootpath: 
  filename  : pxelinux.0
 Begin: Trying netboot from 192.168.10.199:/srv/fai/nfsroot ... \
 Begin: Trying nfsmount -o nolock -o ro  192.168.10.199:/srv/fai/nfsroot\
   /live/image ... done.

Huvitav on tähele panna, et alglaadimise ajal teatatakse, milliseid klasse käesolevale kliendile rakendadatakse

 ...
 Executing /var/lib/fai/config/class/50-host-classes.
 50-host-classes      OK.
 List of all classes:  DEFAULT LINUX AMD64 FAIBASE XENU GRUB postfix LAST

FAI klientide seadistuste kasutamine Subversioni hoidlast

Selleks, et saada FAI klientide seadistusi kasutada Subversioni hoidlast tuleb esmalt Subversioni hoidlasse kopeeride seadistused failisüsteemist

 $ svnadmin create /srv/svn/fai-config
 $ svn import /srv/fai/config file:///srv/svn/fai-config -m "Initial import"

ning käivitada svn deemon

 $ svnserve -d -r /srv/svn

Võiks kontrollida, et Subversionist saab üle võrgu andmeid kopeerida

 $ svn checkout svn://192.168.10.199/fai-config

Seejärel tuleb teha FAI seadistusfailis /etc/fai/fai.conf selline muudatus

 # FAI_CONFIGDIR=/srv/fai/config
 FAI_CONFIG_SRC=svn://192.168.10.199/fai-config

ning moodustada uuesti nfsroot öeldes

 # make-fai-nfsroot -v

Kui SVN autendib kasutajat, siis ilmub alglaadiimise ajal dialoog

 Calling task_confdir
 Kernel currently running: Linux 2.6.26-2-xen-amd64 x86_64 GNU/Linux
 Kernel parameters: xencons=tty ip=dhcp root=/dev/nfs nfsroot=/srv/fai/nfsroot boot=live \
  FAI_ACTION=install   FAI_FLAGS=verbose,sshd
 Reading /tmp/fai/boot.log
 FAI_FLAGS: verbose sshd
 Checking out SVN
 Password for 'root': Authentication realm: <svn://192.168.10.199:3690> 04d564d3-6418-4019-b616-a76ec41bc523
 
 Authentication realm: <svn://192.168.10.199:3690> 04d564d3-6418-4019-b616-a76ec41bc523
 Username: priit
 Password for 'priit': 
 ...

Multipath kasutamine FAI kliendi juurfailisüsteemina

FAI abil on võimalik suhteliselt hõpsasti paigadaldada operatsioonisüsteem arvutisse, millel puudub lokaalne kõvaketas ning mis ühendab külge plokkseadme üle FC kettakastist.

Eesmärgiks on tekitada sellise kõvakettakasutusega arvuti

  • multipath seade
 # multipath -ll
 mpath (360060e80102d1dc00511c56400000003) dm-0 HITACHI ,DF600F        
 [size=100G][features=1 queue_if_no_path][hwhandler=0]
 \_ round-robin 0 [prio=2][active]
  \_ 0:0:0:0 sda 8:0   [active][ready]
  \_ 0:0:1:0 sdb 8:16  [active][ready]
  \_ 1:0:0:0 sdc 8:32  [active][ready]
  \_ 1:0:1:0 sdd 8:48  [active][ready]
  • multipath seadmele on moodustatud kaks nn fdisk partitsiooni (/boot ning LVM PV)
 # fdisk /dev/mapper/mpath -l
 
 Disk /dev/mapper/mpath: 107.3 GB, 107374182400 bytes
 255 heads, 63 sectors/track, 13054 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 Disk identifier: 0x000614a5
 
             Device Boot      Start         End      Blocks   Id  System
 /dev/mapper/mpath1   *           1          16      128488+  83  Linux
 /dev/mapper/mpath2              17       13054   104727735   8e  Linux LVM
  • LVM PV (/dev/dm-2 vastab /dev/mapper/mpath2 ehk /dev/mapper/mpath-part2 plokkseadmele)
 # pvdisplay 
 --- Physical volume ---
 PV Name               /dev/dm-2
 VG Name               system
 PV Size               99.88 GB / not usable 1.18 MB
 ...
  • LVM VG
 # vgdisplay 
 --- Volume group ---
 VG Name               system
 System ID             
 Format                lvm2
 ...
 VG Size               99.88 GB
  • LVM köited
 # lvdisplay 
 --- Logical volume ---
 LV Name                /dev/system/swap
 VG Name                system
 LV Size                256.00 MB
 ...   
 --- Logical volume ---
 LV Name                /dev/system/root
 VG Name                system
 LV Size                2.25 GB
 ...
  • failisüsteemid
 # df -h
 Filesystem               Size  Used Avail Use% Mounted on
 /dev/mapper/system-root  2.3G  546M  1.6G  26% /
 tmpfs                     24G     0   24G   0% /lib/init/rw
 udev                      10M  804K  9.3M   8% /dev
 tmpfs                     24G  4.0K   24G   1% /dev/shm
 /dev/mapper/mpath-part1  122M   25M   91M  22% /boot

FAI root-over-nfs süsteem, mis kliendil nö abistava keskkonnana käivitatakse sisaldab nt mitmete QLogic FC kontrollerite tuge kusjuures vaikimisi ei laadida dm_multipath tuuma moodulit ning vaikimisi FAI klient õnnestub paigaldada ning seejärel ka käivitada (eeldusel, et ka kliendile on lisatud firmware-qlogic pakett). Nii ettevalmistatud FAI kliendi failisüsteemid aga asuvad /dev/sda1, /dev/sda2 jne plokkseadmetelel või neile moodustatud LVM'il.

Selleks, et kliendi failisüsteemid oleksid soovitud kujul, st

  • /boot - /dev/mapper/mpath-part1
  • / - /dev/mapper/system-root
  • swap - /dev/mapper/system-swap

sobib kasutada nt sellist seadistusfaili /srv/fai/config/disk_config/FAIBASE

 disk_config sda  bootable:1
 primary        /boot  128     ext3      rw
 primary        -      2560-   -         -
 disk_config lvm
 vg  system  sda2
 system-swap    swap   256    swap      sw
 system-root    /      2304    ext3      rw

Lisaks tuleb paigaldada klienti paketid firmware-qlogic, multipath-tools-boot ja firmware-bnx2 kui kasutatakse sellist võrgukontrollerit

 # apt-get install firmware-qlogic, multipath-tools-boot firmware-bnx2

Selleks, et kliendi jaoks genereeritud iniramfs tõmmises oleks sobiva sisuga /etc/multipath.conf seadistusfail peab moodustama vastava sisuga faili /srv/fai/config/files/etc/multipath.conf/FAIBASE, nt

 defaults {
   udev_dir                /dev
   polling_interval        5
   default_selector        "round-robin 0"
   user_friendly_names     yes
 }
 
 blacklist { 
   wwid    200d04efd1804f38e
   devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
   devnode "^hd[a-z][[0-9]*]"
   devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
 }
  
 multipaths {
    multipath {
      wwid                    360060e80102d1dc00511c56400000003
      alias                   mpath
    }
 }
  
 devices {
   device {
      vendor "HITACHI"  
      product "DF.*"
      getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n"
      prio_callout "/sbin/mpath_prio_hds_modular /dev/%n"
      path_grouping_policy multibus
      path_checker tur
      features "1 queue_if_no_path"
      failback immediate
    }
 }

ning /srv/fai/config/files/etc/fstab/FAIBASE faili

 /dev/mapper/system-root     /       ext3    rw      0       1
 /dev/mapper/mpath-part1     /boot   ext3    rw      0       2
 /dev/mapper/system-swap     none    swap    sw      0       2

Kahe viimase seadistusfaili klienti kopeerimiseks peavad olema nt failis /srv/fai/config/scripts/FAIBASE/10-misc read (olemasolevate vahel)

 # copy default dotfiles for root account
 fcopy -ir /root
 # root over multipath
 fcopy -i /etc/multipath.conf
 fcopy -i /etc/fstab

Kuivõrd /srv/fai/config/scripts/LAST/50-misc lõpus on rida

 $ROOTCMD update-initramfs -k all -u

siis genereeritakse kliendi initramfs vajaliku multipath ja LVM toega ning see /etc/multipath.conf kopeeritakse samuti initramfs sisse. Kui süsteemi paigaldada LVM või multipath tugi, siis reeglina initramfs sisaldab vastavaid helpereid, mis võimaldavad vastavaid ressursse initramfs'il kasutada ilma, et mida väga erilist oleks arvutikasutajal tarvis seadistada.

Oluline on siinjuures tähele panna, et FAI paigaldab süsteemi /dev/sda1 partitsiooniga seotud /boot failisüsteemi ning /dev/sda2 seadmetega seotud LVM PV ja VG peal olevatele LVM köidetele. Peale kliendi alglaadimist multipath tuge sisaldava initramfs'iga avastatakse LVM kõited aga multipath seadmelt ning /boot failisüsteemile vastab partitsioon /dev/mapper/mpath-part1. See on nii tänu multipathi olemusele, kõik kasutatavad seadmed /dev/sda, /dev/sdb, /dev/sdc ja /dev/sdd vastavad sisuliselt ühele ja samale kettakastist välja jagatavale plokkseadmele.

Alternatiiviks oleks korraldada FAI abil süsteemi paigaldamine otse multipath seadmele, kuid tundub, et 2010 aasta seisuga Debian Lenny ei sisalda multipath toega GRUB alglaadijat, http://wiki.debian.org/DebianInstaller/MultipathSupport.

Märkused

  • Kuna FAI võib ja tegelikult ka mitmel juhul peab käituma üsna agressiivselt st ilma küsimusi esitamata paigaldatakse arvutisse tarkvara, siis peab olema ettevaatlik, et võrgus ei oleks jäänud käima selliste omadustega FAI server, mis pahaaimatult alglaadmisele mineva arvuti selle käivitumisel üle installeerib.
  • Tundub, et kliendi edukaks paigaldamiseks peab tal olema vähemalt 256 MB mälu.

Kasulikud lisamaterjalid