wiki:SynFs

Version 21 (modified by Edwin Eefting, 14 years ago) (diff)

--

Syn-3 filesystem v1

Hier een schematische weergave van het Syn-3 filesystem:

Partitionering

Iedere disk die onderdeel is van de Syn-3 installatie word voorzien van Grub in de MBR.

Verder worden er 2 partities gemaakt:

  • 1e: 64Mb, voor de kernel en initrd.
  • 2e: rest van de disk

MD - Software RAID

Software raid is tegenwoordig optioneel: In Advanced installatie mode kan je er voor kiezen om het helemaal niet te gebruiken.

Als je maar 1 disk hebt word er toch gebruik gemaakt van software raid, zodat je achteraf nog disken kan toevoegen om zo een RAID 1 config te maken. Tegenwoordig kan de gebruiker ook kiezen om dit uit te schakelen. /boot blijft echter altijd raid gebruiken ivm scripts die hier vanuit gaan.

De 1e partitie van iedere schijf word opgenomen in een RAID1 configuratie. Dit is dus een mirror met 1 tot X schijven. De reden hiervan is dat de kernel vanaf iedere schijf gestart moet kunnen worden, voor het geval er een schijf uit het systeem getrokken word of verplaatst word.

De 2e partitie van iedere schijf word:

  • Bij 1 disk: degraded RAID1
  • Bij 2 disken: RAID1
  • Bij 3 of meer disken: RAID5

RAID systeem handmatig activeren

Dit kan als volgt:

-bash-2.05b# mknod /dev/md0 b 9 0; mknod /dev/md1 b 9 1; mdadm -Ac partitions -m dev /dev/md0; mdadm -Ac partitions -m dev /dev/md1
mdadm: /dev/md0 has been started with 1 drive (out of 6).
mdadm: /dev/md1 has been started with 1 drive (out of 2).

Volgorde van assembleren

Als u een RAID array handmatig activeerd, zorg dan dat u de /dev/sd*1 partites ALTIJD onder /dev/md0 activeerd, en de /dev/sd*2 partities altijd onder /dev/md1.

Als u dit andersom doet boot het systeem niet meer omdat de Preferred minor dan omgewisseld is.

U kunt dePreferred minor met --examine. In dit voorbeeld klopt de instelling:

root@ubuntu:~# mdadm --examine /dev/sda1
...
Preferred Minor : 0
...
root@ubuntu:~# mdadm --examine /dev/sda2
...
Preferred Minor : 1
...

Om de preferred minor te herstellen doet u zoiets:

root@ubuntu:~# mdadm --assemble -U super-minor /dev/md0 /dev/sda1 /dev/sdb1

LVM - Logical volume management

Boven op de 'grote' RAID laag word een volume group gemaakt.

De .meta volumes zijn optioneel, en worden alleen door DRBD gebruikt (zie verderop).

De volgende volumes:

  • /dev/syn3/root: De root partitie. Voor versie 4.1rc3: 2G. Nieuwere versies: 4G.
  • /dev/syn3/swap: Swap space, momenteel altijd 512 Mb. Deze zit in LVM omdat hij ook software RAID nodig heeft, en ivm consistente naamgeving bij het verplaatsen van disks.
  • Drbd meta data: 3x128Mb voor drbd metadata die gebruikt word bij Syn-3 redundancy.
  • Gereserveerde ruimte: Voor versie 4.1rc3 was dit 1G, maar hier ging 3x128Mb vanaf na het activeren van redundancy. Bij nieuwere versies word de drbd ruimte meteen gereserveerd en is de gereserveerde ruimte weer 1G.
  • /dev/syn3/home: De rest van de ruimte gaat naar home, waar alle belangrijke datafiles van de gebruikers komen te staan.

Letop: De 64Mb van /boot staat niet in een logical volume, omdat grub de files die hierin staan moet kunnen lezen tijdens het booten.

LVM handmatig activeren

Dit kan als volgt:

-bash-2.05b# vgscan; vgchange -ay
  Reading all physical volumes.  This may take a while...
  Found volume group "syn3" using metadata type lvm2
  6 logical volume(s) in volume group "syn3" now active

LET OP: Een redundant uitgevoerde server mag niet zomaar gemount worden, houdt hier rekening mee!

DBDB - Server redundancy

Drbd is een optionele laag die gebruikt word om een Syn3 server redundant te maken. Je kunt het zien als RAID1 over ethernet.

Ook de /boot moet gemirrored worden ivm kernel en initrd updates.

Swap is uiteraard juist NIET gemirrored.

Voor meer info over redundancy zie help/scc/drbd/showstatus.

XFS - Filesystem

Als filesystem word XFS gebruikt:

  • Journalling
  • Betrouwbaar
  • Ingebouwde Quotas
  • Ingebouwde ACL's (handig voor samba + windows)
  • Komt met eigen backup/restore tool: xfsdump, xfsrestore.

Schijven vergroten

Bij RAID1 en redundant setups is het mogelijk om de onderliggende schijven vervangen door grotere versies.

Hierna dient u deze wijziging laag voor laag door te voeren, op de volgende manier.

Wacht bij iedere stap totdat de RAID array en DRBD nodes gesyncroniseerd zijn.

  1. Zorg dat u met cfdisk de partities van iedere disk maximaliseerd, voor zo ver dit nog niet automatisch gebeurd is:
    [Syn-3] root@darkstar.example.net ~# cfdisk /dev/sda
    ....
    [Syn-3] root@darkstar.example.net ~# cfdisk /dev/sdb...enzovoorts
    
  1. Zorg ervoor dat de RAID-laag op de hoogte is van de wijziging, voor zo ver dit niet automatisch gebeurd is:
    [Syn-3] root@darkstar.example.net ~# mdadm --grow /dev/md1 -z max
    
  1. Zorg er voor dat de LVM-laag op de hoogte is:
    [Syn-3] root@darkstar.example.net ~# pvresize /dev/md1
      Physical volume "/dev/md1" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
    [Syn-3] root@darkstar.example.net ~# lvextend /dev/syn3/home -l+100%FREE
      Extending logical volume home to 3.06 GB
      Logical volume home successfully resized
    
  1. Bij redundancy zorg er voor dat de DRBD-laag op de hoogte is:

Hiervoor kan het nodig zijn om stap 1 t/m 3 ook eerst op de andere node uit te voeren, afhankelijk van uw situatie:

[Syn-3] root@darkstar.example.net ~# drbdsetup /dev/drbd1 resize
  1. Als laatste kan het daadwerkelijke filesystem op de hoogte gebracht worden:
    [Syn-3] root@darkstar.example.net ~# xfs_growfs /home
    meta-data=/dev/home              isize=256    agcount=4, agsize=134912 blks
             =                       sectsz=4096  attr=2
    data     =                       bsize=4096   blocks=539648, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=4096  sunit=1 blks, lazy-count=0
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    

Uw nieuwe ruimte is nu beschikbaar in /home.

Syn-3 filesystem v2

Ideeen voor versie 2:

  • 1 enkelle md device met daar binnen md partities (dit kan tegenwoordig) kan niet: boot moet altijd raid1 zijn
  • drbd laag op deze partities en niet op lvm. (zodat je lvm kan resizen zonder problemen)
  • drbd en raid scripts backwards compatible houden met v1.

Het voordeel van v2 zal zijn: minder vage md en drbd dingen, waardoor minder kans op fouten en verwarring.

Dit alles heeft (nog) geen hoge prioriteit, omdat het een grote ingreep is met weinig voordelen.

XFS problemen

XFS filesytem check hangt

In uitzonderlijke situaties kan het voorkomen replayen van de xfs-journal mis gaat. Het systeem zal dan in de initrd blijven hangen.

Start het systeem in debug mode. (zie SynBoot/debug) Ga met ctrl-d door totdat je net voor het probleem bent aanbeland.

Flush de journal met:

xfs_repair -L /dev/...

Reboot het systeem volgens de normale procedure en kijk of het probleem opgelost is.

Attachments (1)

Download all attachments as: .zip