= Syn-3 filesystem v1 = Hier een schematische weergave van het Syn-3 filesystem: [[Image(filesystemlayout.png)]] == 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 . '''Let op: RAID5 heeft last van het standaard write hole probleem. Gebruik dus een UPS. Zie http://en.wikipedia.org/wiki/RAID_5_write_hole voor meer info''' === 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 de Preferred minor zien 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 [wiki: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 }}} 2. 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 }}} 3. 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 }}} 4. 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 }}} 5. 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 [wiki: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.