Skip to end of metadata
Go to start of metadata

Vágjunk kissé rendet a fájlrendszerek között:

Parancssor
[root@freebsd:~]$ zfs list | grep bpool
bpool                                  1.09G  6.72G    18K  /bpool
bpool/tmp                               369K  6.72G   347K  /tmp
bpool/tmp@install                        22K      -    23K  -
bpool/usr                              1.01G  6.72G   221M  /usr
bpool/usr@install                       198M      -   214M  -
bpool/usr/local                         260M  6.72G   228M  /usr/local
bpool/usr/local@install                31.2M      -  90.8M  -
bpool/usr/obj                            18K  6.72G    18K  /usr/obj
bpool/usr/ports                         193M  6.72G   152M  /usr/ports
bpool/usr/ports@20080822               41.1M      -   146M  -
bpool/usr/src                           164M  6.72G   153M  /usr/src
bpool/usr/src@20080822                 10.8M      -   153M  -
bpool/var                              76.2M  6.72G  75.7M  /var
bpool/var@install                       190K      -   244K  -
[root@freebsd:~]$ zfs rename bpool/usr/src@20080822 bpool/usr/src@install
[root@freebsd:~]$ zfs snapshot bpool/usr@stable
[root@freebsd:~]$ zfs snapshot bpool/usr/local@stable
[root@freebsd:~]$ zfs snapshot bpool/var@stable
[root@freebsd:~]$ zfs destroy bpool/tmp@install
[root@freebsd:~]$ zfs destroy bpool/usr@install
[root@freebsd:~]$ zfs destroy bpool/usr/local@install
[root@freebsd:~]$ zfs destroy bpool/var@install
[root@freebsd:~]$ zfs destroy bpool/usr/ports@20080822
[root@freebsd:~]$ zfs list | grep bpool
bpool                                   845M  6.99G    18K  /bpool
bpool/tmp                               347K  6.99G   347K  /tmp
bpool/usr                               766M  6.99G   221M  /usr
bpool/usr@stable                         33K      -   221M  -
bpool/usr/local                         229M  6.99G   228M  /usr/local
bpool/usr/local@stable                  217K      -   228M  -
bpool/usr/obj                            18K  6.99G    18K  /usr/obj
bpool/usr/ports                         152M  6.99G   152M  /usr/ports
bpool/usr/src                           164M  6.99G   153M  /usr/src
bpool/usr/src@install                  10.8M      -   153M  -
bpool/var                              76.1M  6.99G  75.7M  /var
bpool/var@stable                        127K      -  75.7M  -

Azok a snapshot-ok, amelyeket a teleptésnél hoztunk létre – már nem kellenek, helyettük célszerű egy @stable létrehozása, amely a rendszerünk jelenlegi stabil állapotát jelenti. Egyedül a /usr/src fájlrendszeren célszerű meghagyni a snapshot-ot, de nevezzük át @install névre, hiszen ebből tudunk olyan kernelt és alaprendszert fordítani, amely megegyezik a rendszerünk jelenlegi állapotával – ugyanakkor lehetővé válik a források folyamatos frissítése is.

ports fát érdemes naponta frissíteni, ezért erre állítsunk be egy megfelelő crontab bejegyzést, erről levelet fogunk kapni (a `cron` paraméter azt jelenti, hogy a portsnap program maximum egy órát vár véletlenszerűen választott ideig, mielőtt indulna, ezzel tehermentesíti a snap szervert, mivel szép egész órákra szoktak a rendszergazdák programokat időzíteni – ahogy mi is):

crontab
0 12 * * * /usr/sbin/portsnap cron

Az eredményt levélben kapjuk (valamikor dél és egy óra között):

Cron <root@freebsd> /usr/local/bin/cvsup -g /usr/local/etc/supfile.sources
 

Ezen túl az alaprendszer forrását hetente egyszer frissítsük, hátha olyan részt javítanak, amely fontos lehet:

crontab
0 12 * * 1      /usr/local/bin/cvsup -g /usr/local/etc/supfile.sources

Az eredmény itt is levélben jön:

Cron <root@freebsd> /usr/local/bin/cvsup -g /usr/local/etc/supfile.sources
Connected to cvsup.hu.FreeBSD.org
Updating collection src-all/cvs
 Edit src/lib/libarchive/test/test_compat_tar_hardlink.c
 Edit src/lib/libarchive/test/test_pax_filename_encoding.c
 Edit src/lib/libarchive/test/test_tar_large.c
 Edit src/lib/libarchive/test/test_ustar_filenames.c
 Edit src/lib/libarchive/test/test_write_disk_hardlink.c
 Edit src/lib/libarchive/test/test_write_format_tar_ustar.c
 Edit src/share/colldef/Makefile
 Checkout src/share/colldef/no_NO.ISO8859-1.src
 Checkout src/share/colldef/no_NO.ISO8859-15.src
 Edit src/share/timedef/Makefile
 Checkout src/share/timedef/nb_NO.ISO8859-1.src
 Checkout src/share/timedef/nb_NO.UTF-8.src
 Delete src/share/timedef/no_NO.ISO8859-1.src
 Delete src/share/timedef/no_NO.UTF-8.src
 Edit src/sys/boot/sparc64/loader/main.c
 Edit src/sys/conf/options.sparc64
 Edit src/sys/dev/pci/pci.c
 Edit src/sys/dev/pci/pci_pci.c
 Edit src/sys/dev/pci/pcivar.h
 Edit src/sys/dev/usb/hid.c
 Edit src/sys/dev/usb/ums.c
 Edit src/sys/kern/vfs_mount.c
 Edit src/sys/sparc64/include/asi.h
 Edit src/sys/sparc64/include/cache.h
 Edit src/sys/sparc64/include/cpufunc.h
 Edit src/sys/sparc64/include/pcpu.h
 Edit src/sys/sparc64/pci/ofw_pci.h
 Edit src/sys/sparc64/pci/ofw_pcibus.c
 Edit src/sys/sparc64/pci/psycho.c
 Edit src/sys/sparc64/sparc64/cheetah.c
 Edit src/sys/sparc64/sparc64/clock.c
 Edit src/sys/sparc64/sparc64/exception.S
 Edit src/sys/sparc64/sparc64/locore.S
 Edit src/sys/sparc64/sparc64/machdep.c
 Edit src/sys/sparc64/sparc64/mp_locore.S
 Edit src/sys/sparc64/sparc64/mp_machdep.c
 Edit src/sys/sparc64/sparc64/pmap.c
 Edit src/sys/sparc64/sparc64/prof_machdep.c
 Edit src/sys/sparc64/sparc64/spitfire.c
 Edit src/sys/sparc64/sparc64/support.S
 Edit src/sys/sparc64/sparc64/swtch.S
 Edit src/sys/sparc64/sparc64/tick.c
 Edit src/sys/sparc64/sparc64/tlb.c
 Edit src/sys/sparc64/sparc64/trap.c
 Edit src/usr.bin/tar/Makefile
 Edit src/usr.bin/tar/bsdtar.c
 Edit src/usr.bin/tar/matching.c
 Edit src/usr.bin/tar/test/Makefile
 Edit src/usr.bin/tar/test/test_copy.c
 Edit src/usr.bin/tar/test/test_option_T.c
 Checkout src/usr.bin/tar/test/test_option_q.c
 Edit src/usr.bin/tar/test/test_patterns.c
 Checkout src/usr.bin/tar/test/test_patterns.tgz.err.uu
 Checkout src/usr.bin/tar/test/test_patterns.tgz.out.uu
 Checkout src/usr.bin/tar/test/test_patterns.tgz.uu
Finished successfully

Ami esetleg még fontos lehet, hogy a jail-ek ports fáját is frissítsük, ez némi ZFS karbantartást is igényel, ezért erre írjunk egy script-et (egyelőre belekódoljuk a jail-ek elérési útját, ezen majd változtatunk a későbbiekben):

/root/bin/cron/jails/portsnap.sh
#!/usr/local/bin/bash

/usr/sbin/portsnap -p /jails/template/usr/ports cron

/sbin/zfs destroy dpool/jails/ports/system/dns
/sbin/zfs destroy dpool/jails/ports/system/ldap
/sbin/zfs destroy dpool/jails/ports/system/logserver
/sbin/zfs destroy dpool/jails/ports/system/mail

/sbin/zfs destroy dpool/jails/ports/template@now
/sbin/zfs snapshot dpool/jails/ports/template@now

/sbin/zfs clone dpool/jails/ports/template@now dpool/jails/ports/system/dns
/sbin/zfs clone dpool/jails/ports/template@now dpool/jails/ports/system/ldap
/sbin/zfs clone dpool/jails/ports/template@now dpool/jails/ports/system/logserver
/sbin/zfs clone dpool/jails/ports/template@now dpool/jails/ports/system/mail

/sbin/zfs set readonly=on dpool/jails/ports/system/dns
/sbin/zfs set readonly=on dpool/jails/ports/system/ldap
/sbin/zfs set readonly=on dpool/jails/ports/system/logserver
/sbin/zfs set readonly=on dpool/jails/ports/system/mail

/sbin/zfs set mountpoint=/jails/system/dns/usr/ports dpool/jails/ports/system/dns
/sbin/zfs set mountpoint=/jails/system/ldap/usr/ports dpool/jails/ports/system/ldap
/sbin/zfs set mountpoint=/jails/system/logserver/usr/ports dpool/jails/ports/system/logserver
/sbin/zfs set mountpoint=/jails/system/mail/usr/ports dpool/jails/ports/system/mail

Ezt is tegyük bele a crontab-ba:

crontab
0 13 * * *     /root/bin/cron/jails/portsnap.sh
      
      
Page viewed times
  • No labels
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))