Filsystem: XFS

Forfatter: Morten Werner Forsbring, Ketil Nikolaisen
Kontakt: unix-drift@usit.uio.no
Dato: 2012-08-14

I noen tilfeller kan det være fornuftig å benytte filsystemet XFS fremfor det som er standard med RHEL (ext3 og ext4).

  • støtte for filsystemer opp til 100TiB
  • kvoter på katalognivå (ikke på bruker eller gruppe)

Normale driftsoppgaver

For å kunne jobbe med XFS-filsystemer må man ha xfsprogs-pakken installert (se Forberedelser for mer info).

Lage et XFS-filsystem (monteres som vanlig med xfs-entry i fstab):

# mkfs.xfs /dev/datavg/xfstest

Utvide et XFS-filsystem (antar man allerede har utvidet devicet enten på Storage-siden eller i LVM):

# xfs_growfs /usit/maskin/xfstest

Det er ikke mulig å krympe et XFS-filsystem.

Hvordan sjekke xfs filsystemet for fragmentering? Dette gjøres med xfs_db (xfs debugger) i read only mode. Om du ikke finner dette verktøyet må du installere pakkene dmapi og xfsdump i tillegg til xfsprogs.

# xfs_db -c frag -r [devicepath]

For å defragmentere brukes verktøyet xfs_fsr

# xfs_fsr [-v] [xfsdevice | file]

Kvoter

XFS har støtte for kvoter per bruker, gruppe eller katalog (med underkataloger). Det mest interessante er katalog-kvoter ettersom XFS er det eneste filsystemet vi støtter som har dette (bortsett fra NetApps WAFL da).

Dersom man skal bruke katalog-kvoter på et filsystem, må det være montert med opsjonen prjquota, og dette spesifiseres i /etc/fstab:

/dev/datavg/xfs01 /usit/maskin/xfstest  xfs  defaults,prjquota  1 2

For å sette opp kvote på 1GB på katalogen /usit/maskin/xfstest/1g-kvote/ gjøres følgende (antar at /usit/maskin/xfstest er et XFS-filsystem):

# mkdir -p /usit/maskin/xfstest/1g-kvote
# echo 10:/usit/maskin/xfstest/1g-kvote >> /etc/projects
# echo xfstest-1g-kvote:10 >> /etc/projid
# xfs_quota -x -c 'project -s xfstest-1g-kvote' /usit/maskin/xfstest
Setting up project kvotetest (path /div/lh-khm/khm-felles01/kvotetest)...
Processed 1 /etc/projects paths for project kvotetest
# xfs_quota -x -c 'limit -p bhard=1g xfstest-1g-kvote' /usit/maskin/xfstest

XFS-kvoter organiseres i prosjekter, et prosjekt per katalogkvote. Hvert prosjekt har sin ID, og i eksempelet over har vi brukt IDen 10.

For å se de aktuelle prosjektene for filsystemet /usit/maskin/xfstest (her er prosjektet fullt):

# xfs_quota -x -c 'report -h' /usit/maskin/xfstest
Project quota on /usit/maskin/xfstest (/dev/datavg/xfstest)
                               Blocks
Project ID       Used       Soft       Hard Warn/Grace
---------- --------------------------------------------------
xfstest-1g-kvote 1024.0M          0    1G       00 [--------]

Overvåking

Fra 2011-02-07 overvåker vi automatisk fyllingsgrad på prosjekter med Nagios-pluginet check_xfs_quota. Dette kjøres på maskiner med rollen (sjekk /etc/usit/roles.txt) linux-xfs-quotas.

Nagios-meldingen i front-grensesnittet ser slik ut:

XFS-quotas exceeded. Click service for details

Den fulle meldingen vises når en ser på modulstatusen (aka klikker på tjenestedetaljer):

XFS-quotas exceeded. Click service for details

------------------------------------------
PATH                     Util/Free    State   Warn     Crit
/usit/maskin/xfstest      97.09%       Crit    90%      95%

Overvåkingsgrenser kan overstyrtes i filen /etc/uio/conf/nagios_check_xfs_quota, som har følgende format:

path warn crit yesno

Hvor

  • path: Sti til xfs-prosjektet
  • warn: varslingsgrense for warning-alarm. (tall+{k,m,g,t,%}
  • crit: varslingsgrense for kritisk-alarm. (tall+{k,m,g,t,%}
  • yesno: Varsling av eller på {y,n}

Hvis en sti er spesifisert, må alle feltene spesifiseres. På RHEL6 kan stien spesifiseres med regulære uttrykk på samme måte som med disks.cfg. Dersom flere linjer matcher et prosjekt er det den nederste linjen som overstyrer.

Forberedelser

Alle Linux-distribusjonene som vi støtter på UiO har støtte for XFS kompilert inn i standard-kjernen. Det som må installeres i tillegg er verktøy for å lage og vedlikehold XFS-filsystemer.

RedHat Enterprise Linux

På RHEL5 må man betale ekstra for XFS-støtte (ta kontakt med unix-drift@usit.uio.no hvis dette er ønskelig).

For å teste XFS på RedHat kan man laste ned disse verktøyene fra f.eks. CentOS (RPMen xfsprogs på http://ftp.uio.no/centos/5/centosplus/x86_64/RPMS/ installeres med 'rpm -ivh'). Merk at du ikke får support fra RedHat ved å bruke denne RPMen.

For mer funksjonalitet for xfs i RHEL5 må du også ha pakkene dmapi og xfsdump installert. Det blir da mulig å sjekke filsystemet for fragmentering, samt online defragmentering.

For RHEL6 antar vi det også er ekstra betaling for XFS-støtte fra RedHat.

xfsprogs installeres slik:

  • # yum -y install xfsprogs
     
  • #  omreport storage pdisk controller=1 | egrep "^(ID|Name|Capacity
  • #  omconfig storage controller action=createvdisk controller=1 raid=r6 size=max pdisk=0:0:0,0:0:1,0:0:2,0:0:3,0:0:4,0:0:5,0:0:6,0:0:7,0:0:8
  • # pvcreate /dev/sdd
  • # vgcreate -s 128M md1220-1-vg /dev/sdd
  • # vgdisplay md1220-1-vg
  • # vgrename md1220-1-vg md1200-1-vg
  • #  lvcreate -L 10T -n work md1200-1-vg
  • - i /etc/fstab:
    /dev/md1200-1-vg/work   /node/work              xfs     defaults        1 2
  • # mount -v  /node/work
  • # df -h /work
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/md1200--1--vg-work
                           10T   33M   10T   1% /node/work
  • # vgs
      VG          #PV #LV #SN Attr   VSize   VFree  
      datavg        2   1   0 wz--n-   3.90t      0
      internvg      1   6   0 wz--n- 199.72g 178.72g
      md1200-1-vg   1   1   0 wz--n-  19.10t   9.10t
     

Debian og Ubuntu

På Debian og Ubuntu heter .deb-pakken med verktøyene det samme, xfsprogs, og er tilgjengelig sammen med andre pakker fra de to distribusjonene. Installeres med 'apt-get install xfsprogs'.

 

Publisert 14. aug. 2012 14:08 - Sist endret 22. aug. 2012 14:47