Server::Gebruikersdata Opslag
Centrale Opslag van Gebruikersdata
![]() |
|
Centrale Opslag Manipuleren met bindmounts
In het ClearOS document
Storage Manipulation Using Bindmounts wordt de strategie die ClearOS wenst te volgen uiteen gezet.
Om de opslagruimte correct en efficient te gebruiken zal het nodig zijn mountpoints en datastructuren te wijzigen en tevens een framewerk te verstrekken voor toekomstige Apps gebaseerd op deze consideraties. De strategie van ClearOS is groeiende gebruikersdata op een afzonderlijke partitie op te slaan en deze opslagruimte te verdelen met behulp van bindmounts.
Linux Volume Manager
LVM staat voor Linux Volume Manager. Het geeft veel flexibiliteit met partities.
Zie voor het hele LVM verhaal de LVM Administrator's Guide en voor een paar uitgewerkte voorbeelden Server::LVM Oplossingen en Voorbeelden
![]() |
Volume Group's (VG) zoals: main en data Physical Volume's (PV) zoals: sda2, sda3, sdb1 en sdc1 |
Dingen die LVM kan doen:
- Resize Volume Groups (VG) door nieuw physiek volume (PV) op te nemen of te verwijderen
- Resize logical volumes (LV) on-line door concateneren of trunceren van extensies
- Creëren van read-only snapshots van Logical Volumes (LVM1)
- Creëren van read-write snapshots van Logical Volumes (LVM2)
- Stripe LV's of delen ervan over multiple PV's, op een manier zoals bij RAID 0
- Mirror LV's of delen ervan, op een manier zoals bij RAID 1
- Verhuis LV's on-line tussen PV's
- Split of merge VG's (zolang geen LV's de split overspannen)
Aanbevolen structuur
ClearOS recommendeert tenminste 3 fysieke partities op het systeem:
- /boot
- LVM Volume Group 'main' voor systeem data
- LVM Volume Group voor gebruikersdata en backup hiervan
Boot:
Het is verstandig om boot apart te houden. Op die manier is het een ouderwetse partitie die makkelijk door GRUB of andere systemen gelezen kan worden zonder rekening te moeten houden met LVM aspecten. ClearOS beveelt tenminste 500 MB aan voor de /boot partitie.
Main:
De tweede partitie zetten we op met LVM met 100 GB, hier wordt het systeem geplaatst.
Zie voor de op deze server toegepaste verdeling van de 'main' LVM het hoofdstuk Installeren, ik heb hierbij de door ClearOS aanbevolen structuur gevolgd.
Data:
Aanvankelijk heb ik exact de ClearOS strategie gevolgd met onderstaand schema als resultaat:
Alle data zijn hierbij ondergebracht in Logical Volume 'data0' die gebruik maakt van de gehele of gedeeltelijke Volume Group 'data'. Deze VG 'data' bestaat uit 1 of meerdere Physical Volumes (/dev/sdb1, /dev/sdc1, etc).
- Ten eerste worden in VG 'data' de 'live' data opgeslagen zoals alle fileserver folders als wel de webserver gegevens, tevens krijgen de MariaDb databasebestanden hier een plaats.
- Ten tweede worden in deze VG de 'backup' data opgeslagen, van o.a. BackupPC met de dagelijkse backups van de PC's op het lokale netwerk, maar ook dagelijkse backups van de 'live' file- en webserver bestanden.
Het zat mij vanaf het begin niet lekker dat op deze manier zowel de live data als de backup hiervan in dezelfde VG ondergebracht worden. Als een Physical Volume (een fysieke HDD) in de VG het begeeft zijn zowel de live data alswel de backups hiervan verloren.
Er worden wel is waar in de VG 'safe' archieven gemaakt van alle 'live'- en 'backup' bestanden, maar deze worden slechts ééns in de zoveel tijd gemaakt en dus met een veel groter verlies van recente bestanden. Tevens is het een enorme klus om uit deze tarballs complete datasystemen opnieuw op te zetten en te populeren.
Gescheiden VG's voor 'live' en 'backup' data
In januari 2019 heb ik de VG 'data' gesplitst in een VG 'datalive'en een VG 'databck' met als resultaat dat de data ook fysiek gescheiden opgeslagen zullen zijn.
Omdat het om een relatief éénvoudige homeserver gaat heb ik ook andere delen van de ClearOS structuur laten vallen zoals de subdirectories 'data0' en 'server1'.
Verder wordt wel de
Storage Manipulation Using Bindmounts strategie gevold.
Volume Group 'Safe'
Voor een fysiek gescheiden 'overall' backup wordt tenslotte een vierde HDD geplaatst waarop een Volume Group (VG) 'safe' aangemaakt zal worden.
Backup Flowchart
Zie voor een gedetailleeerd overzicht van datastromen op de server de Backup Flowchart in de sectie Server::Backup en Restore
LVM Utilities
Tijdens de initiële installatie van ClearOS 7 zijn tijdens de handmatige partitionering de Volume Group 'main' en de bijbehorende Logical Volumes aangemaakt.
Met de Linux Volume Manager (LVM)
Deze zijn aan de commandlijn te bekijken en te wijzigen.
Hier nu enkele nuttige commando's:
[root@mainserver ~]# lvmdiskscan /dev/nvme0n1 [ 465.76 GiB] /dev/nvme0n1p1 [ 800.00 MiB] /dev/nvme0n1p2 [ 200.00 GiB] LVM physical volume 1 disks 2 partitions
[root@mainserver ~]# pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p2 main lvm2 a-- 200.00g 162.00g
[root@mainserver ~]# vgs VG #PV #LV #SN Attr VSize VFree main 1 4 0 wz--n- 200.00g 162.00g
[root@mainserver ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert logs main -wi-ao---- 10.00g root main -wi-ao---- 10.00g swap main -wi-ao---- 8.00g var main -wi-ao---- 10.00g
Linux Volume Management Manipulaties
Zie voor verschillende voorbeelden van het werken met LVM: FAQ en Oplossingen > Linux Volume Management Manipulaties
Mounts in fstab
Na de
initiële installatie van ClearOS 7 ziet /etc/fstab er als volgt uit:
# /etc/fstab # Created by anaconda on Wed Oct 14 19:30:47 2020 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/main-root / xfs defaults 0 0 UUID=e2995560-9d51-4669-abeb-09d0f7c2a59d /boot xfs defaults 0 0 /dev/mapper/main-var /var xfs defaults 0 0 /dev/mapper/main-logs /var/log xfs defaults 0 0 /dev/mapper/main-swap swap swap defaults 0 0
Gebruikersdata: Volume Group 'datalive'
Deze sectie gaat nu verder met het opzetten van de gebruikersdatastructuur, dus met de data fysiek gescheiden verdeeld over twee VG's (zie nieuw schema hierboven).
Data Volumes aan ClearOS toevoegen
We maken op de HDD /dev/sdb de VG 'datalive' met LV 'live'
De naam van het Logical Volume (LV) moet uiteindelijk overeenkomen met de gecreëerde mount onder /store.
Maak partitie op /dev/sda
Maak nieuwe partitie sda1 op /dev/sda van 4 TB:
[root@mainserver ~]# fdisk -l /dev/sda
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
!!! Met fdisk kan maximaal 2TB gepartioneerd worden !!!
Om een grotere partitie te maken, start GNU parted:
[root@mainserver ~]# parted /dev/sda GNU Parted 3.1 Using /dev/sda Maak een nieuwe GPT disklabel i.e. partition table (parted) mklabel gpt (parted) print Model: ATA WDC WD40EFRX-68N (scsi) Disk /dev/sda: 4001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags Zet units naar TB (parted) unit TB Maak partitie: 1, primair en gebruik gehele hdd (parted) mkpart primary 0 100% (parted) print Model: ATA WDC WD40EFRX-68N (scsi) Disk /dev/sda: 4.00TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00TB 4.00TB 4.00TB primary Maak partitie een LVM partitie (parted) set 1 lvm on (parted) print Model: ATA WDC WD40EFRX-68N (scsi) Disk /dev/sda: 4.00TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00TB 4.00TB 4.00TB primary lvm
Initialiseer /dev/sda1 als Physical Volume
[root@mainserver ~]# pvcreate /dev/sda1 Physical volume "/dev/sda1" successfully created.
Confirmeer initialisatie:
[root@mainserver ~]# lvmdiskscan ... /dev/sda1 [ <3.64 TiB] LVM physical volume ... [root@mainserver ~]# pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p2 main lvm2 a-- 200.00g 162.00g /dev/sda1 lvm2 --- <3.64t <3.64t [root@mainserver ~]# pvdisplay /dev/sda1 "/dev/sda1" is a new physical volume of "<3.64 TiB" --- NEW Physical volume --- PV Name /dev/sda1 VG Name PV Size <3.64 TiB Allocatable NO
Voeg PV /dev/sda1 toe aan VG 'datalive'
[root@mainserver ~]# vgcreate datalive /dev/sda1 Volume group "datalive" successfully created
Confirmeer status
[root@mainserver ~]# vgdisplay datalive --- Volume group --- VG Name datalive System ID Format lvm2 VG Size <3.64 TiB Alloc PE / Size 0 / 0 Free PE / Size 953861 / <3.64 TiB
Maak LV 'live' met 100%FREE in VG 'datalive' en formatteer
[root@mainserver ~]# lvcreate -l 100%FREE -n live datalive Logical volume "live" created.
Confirmeer status
[root@mainserver ~]# lvdisplay datalive --- Logical volume --- LV Path /dev/datalive/live LV Name live VG Name datalive LV Size <3.64 TiB
Formatteer LV 'live' met xfs
[root@mainserver ~]# mkfs -t xfs /dev/datalive/live meta-data=/dev/datalive/live isize=512 agcount=4, agsize=244188416 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=976753664, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=476930, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
Maak mountpunt /store/live en mount 'datalive-live'
Maak mount-directorie /store/live
[root@mainserver store]# mkdir /store/live [root@testserver store]# ls -l /store drwxr-xr-x 2 root root 6 Oct 18 17:25 live
Voeg mount van LV datalive-live toe in /etc/fstab
# /etc/fstab ... /dev/mapper/datalive-live /store/live xfs defaults 1 2 ...
Mount nwe hdd
[root@mainserver store]# mount -a
Confirmeer status
[root@mainserver ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/main-root xfs 10G 2.5G 7.5G 26% /
/dev/nvme0n1p1 xfs 797M 175M 623M 22% /boot
/dev/mapper/main-var xfs 10G 1.5G 8.6G 15% /var
/dev/mapper/main-logs xfs 10G 82M 10G 1% /var/log
/dev/mapper/datalive-live xfs 3.7T 33M 3.7T 1% /store/live
Nu is de device '/dev/mapper/datalive-live' gekoppeld aan de mount '/store/live'.
Als we dit controleren dan vinden we tot nu toe alleen :
[root@testserver ~]# ls -la /store/live drwxr-xr-x 7 root root 4096 Jan 26 16:09 .
drwxr-xr-x. 4 root root 4096 Jan 26 16:29 ..
Gebruikersdata: Volume Group 'databck'
Deze sectie gaat nu verder met het opzetten van de gebruikersdatastructuur, dus met de data fysiek gescheiden verdeeld over twee VG's (zie nieuw schema hierboven).
Data Volumes aan ClearOS toevoegen
We maken op de HDD /dev/sdb de VG 'databck' met LV 'backup'
De naam van het Logical Volume (LV) moet uiteindelijk overeenkomen met de gecreëerde mount onder /store.
Maak partitie op /dev/sdb
Maak nieuwe partitie sdb1 op /dev/sdb van 4 TB:
[root@mainserver ~]# parted /dev/sdb GNU Parted 3.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt (parted) print Model: ATA WDC WD40EFRX-68N (scsi) Disk /dev/sdb: 4001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags Zet units naar TB (parted) unit TB Maak partitie: 1, primair en gebruik gehele hdd (parted) mkpart primary 0 100% (parted) print Model: ATA WDC WD40EFRX-68N (scsi) Disk /dev/sdb: 4.00TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00TB 4.00TB 4.00TB primary Maak partitie een LVM partitie (parted) set 1 lvm on (parted) print Model: ATA WDC WD40EFRX-68N (scsi) Disk /dev/sdb: 4.00TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00TB 4.00TB 4.00TB primary lvm
Initialiseer /dev/sdb1 als Physical Volume
[root@mainserver ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created.
Confirmeer initialisatie:
[root@mainerver ~]# lvmdiskscan ... /dev/sdb1 [ <3.64 TiB] LVM physical volume ... [root@mainserver ~]# pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p2 main lvm2 a-- 200.00g 162.00g
/dev/sda1 datalive lvm2 a-- <3.64t 0
/dev/sdb1 lvm2 --- <3.64t <3.64t [root@mainserver ~]# pvdisplay /dev/sdb1 "/dev/sdb1" is a new physical volume of "<3.64 TiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size <3.64 TiB Allocatable NO
Voeg PV /dev/sdb1 toe aan VG 'databck'
[root@mainserver ~]# vgcreate databck /dev/sdb1 Volume group "databck" successfully created
Confirmeer status
[root@mainserver ~]# vgdisplay databck --- Volume group --- VG Name databck System ID Format lvm2 VG Size <3.64 TiB Alloc PE / Size 0 / 0 Free PE / Size 953861 / <3.64 TiB
Maak LV 'backup' met 100%FREE in VG 'databck' en formatteer
[root@mainserver ~]# lvcreate -l 100%FREE -n backup databck Logical volume "backup" created.
Confirmeer status
[root@mainserver ~]# lvdisplay databck --- Logical volume --- LV Path /dev/databck/backup LV Name backup VG Name databck LV Size <3.64 TiB
Formatteer LV 'backup' met xfs
[root@mainserver ~]# mkfs -t xfs /dev/databck/backup meta-data=/dev/databck/backup isize=512 agcount=4, agsize=244188416 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=976753664, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=476930, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
Maak mountpunt /store/backup en mount 'databck-backup'
Maak mount-directorie /store/backup
[root@mainserver store]# mkdir /store/backup [root@mainserver store]# ls -l /store drwxr-xr-x 2 root root 6 Oct 19 11:32 backup drwxr-xr-x 2 root root 6 Oct 18 17:23 live
Voeg mount van LV datalive-live toe in /etc/fstab
# /etc/fstab ... /dev/mapper/databck-backup /store/backup xfs defaults 1 2 ...
Mount nwe hdd
[root@mainserver store]# mount -a
Confirmeer status
[root@mainserver ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/main-root 10G 2.5G 7.5G 26% /
/dev/nvme0n1p1 797M 175M 623M 22% /boot
/dev/mapper/main-var 10G 1.5G 8.6G 15% /var
/dev/mapper/main-logs 10G 77M 10G 1% /var/log
/dev/mapper/datalive-live 3.7T 33M 3.7T 1% /store/live
/dev/mapper/databck-backup 3.7T 33M 3.7T 1% /store/backup
Nu is de device '/dev/mapper/databck-backup' gekoppeld aan de mount '/store/backup'.
Als we dit controleren dan vinden we tot nu toe alleen:
[root@mainserver ~]# ls -la /store/backup total 0 drwxr-xr-x 2 root root 6 Oct 19 11:27 . drwxr-xr-x. 4 root root 32 Oct 19 11:32 ..
Gebruikersdata: Volume Group 'safe' met 2 PV's
Deze sectie gaat nu verder met het opzetten van de gebruikersdatastructuur met de overall backup 'vault', fysiek gescheiden van de overige VG's.
Data Volumes aan ClearOS toevoegen
We maken op de HDD's /dev/sdc en /dev/sdd van 2 TB elk de VG 'safe' met LV 'vault'.
Maak partitie op 1e HDD /dev/sdc
Maak nieuwe partitie sdc1 op /dev/sdc van 2 TB:
[root@mainserver ~]# parted /dev/sdc GNU Parted 3.1 Using /dev/sdc Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt (parted) print Model: ATA WDC WD20EZRX-00D (scsi) Disk /dev/sdc: 2000GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags Zet units naar TB (parted) unit TB Maak partitie: 1, primair en gebruik gehele hdd (parted) mkpart primary 0 100% (parted) print Model: ATA WDC WD20EZRX-00D (scsi) Disk /dev/sdc: 2.00TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00TB 2.00TB 2.00TB primary Maak partitie een LVM partitie (parted) set 1 lvm on (parted) print Model: ATA WDC WD20EZRX-00D (scsi) Disk /dev/sdc: 2.00TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00TB 2.00TB 2.00TB primary lvm
Initialiseer /dev/sdc1 als Physical Volume
[root@mainserver ~]# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created.
Confirmeer initialisatie:
[root@mainerver ~]# lvmdiskscan ... /dev/sdb1 [ <3.64 TiB] LVM physical volume ... [root@mainserver ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda1 datalive lvm2 a-- <3.64t 0 /dev/sdb1 databck lvm2 a-- <3.64t 0 /dev/sdc1 lvm2 --- <1.82t <1.82t [root@mainserver ~]# pvdisplay /dev/sdc1 "/dev/sdc1" is a new physical volume of "<1.82 TiB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size <1.82 TiB Allocatable NO
Maak partitie op 2e HDD /dev/sdd
Maak nieuwe partitie sdd1 op /dev/sdc van 2 TB:
[root@mainserver ~]# parted /dev/sdd GNU Parted 3.1 Using /dev/sdc Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt (parted) print Model: ATA WDC WD20EZRX-00D (scsi) Disk /dev/sdd: 2000GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags Zet units naar TB (parted) unit TB Maak partitie: 1, primair en gebruik gehele hdd (parted) mkpart primary 0 100% (parted) print Model: ATA WDC WD20EZRX-00D (scsi) Disk /dev/sdd: 2.00TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00TB 2.00TB 2.00TB primary Maak partitie een LVM partitie (parted) set 1 lvm on (parted) print Model: ATA WDC WD20EZRX-00D (scsi) Disk /dev/sdd: 2.00TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 0.00TB 2.00TB 2.00TB primary lvm
Initialiseer /dev/sdd1 als Physical Volume
[root@mainserver ~]# pvcreate /dev/sdd1 Physical volume "/dev/sdd1" successfully created.
Confirmeer initialisatie:
[root@mainerver ~]# lvmdiskscan ... /dev/sdb1 [ <3.64 TiB] LVM physical volume ... [root@mainserver ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda1 datalive lvm2 a-- <3.64t 0 /dev/sdb1 databck lvm2 a-- <3.64t 0 /dev/sdc1 lvm2 --- <1.82t <1.82t /dev/sdd1 lvm2 --- <1.82t <1.82t [root@mainserver ~]# pvdisplay /dev/sdd1 "/dev/sdc1" is a new physical volume of "<1.82 TiB" --- NEW Physical volume --- PV Name /dev/sdd1 VG Name PV Size <1.82 TiB Allocatable NO
Voeg PV's /dev/sdc1 en /dev/sdd1 toe aan VG 'safe'
[root@mainserver ~]# vgcreate safe /dev/sdc1 /dev/sdd1 Volume group "safe" successfully created
Confirmeer status
[root@mainserver ~]# vgdisplay safe --- Volume group --- VG Name safe System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Size <3.64 TiB Alloc PE / Size 0 / 0 Free PE / Size 953862 / <3.64 TiB
Maak LV 'vault' met 100%FREE in VG 'safe' en formatteer
[root@mainserver ~]# lvcreate -l 100%FREE -n vault safe Logical volume "vault" created.
Confirmeer status
[root@mainserver ~]# lvdisplay safe --- Logical volume --- LV Path /dev/safe/vault
LV Name vault
VG Name safe LV Size <3.64 TiB
Formatteer LV 'safe' met xfs
[root@mainserver ~]# mkfs -t xfs /dev/safe/vault meta-data=/dev/safe/vault isize=512 agcount=4, agsize=244188672 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=976754688, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=476931, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
Maak mountpunt /vault en mount 'safe-vault'
Maak mount-directorie /vault
[root@mainserver store]# mkdir /vault [root@mainserver store]# ls -al /vault drwxr-xr-x 2 root root 6 Oct 19 16:10 . dr-xr-xr-x. 19 root root 268 Oct 19 16:10 ..
Voeg mount van LV safe-vault toe in /etc/fstab
# /etc/fstab ... /dev/mapper/safe-vault /vault xfs defaults 1 2 ...
Mount nwe hdd
[root@mainserver store]# mount -a
Confirmeer status
[root@mainserver ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/main-root 10G 2.5G 7.5G 26% /
/dev/nvme0n1p1 797M 175M 623M 22% /boot
/dev/mapper/main-var 10G 1.5G 8.6G 15% /var
/dev/mapper/main-logs 10G 79M 10G 1% /var/log
/dev/mapper/datalive-live 3.7T 33M 3.7T 1% /store/live
/dev/mapper/databck-backup 3.7T 33M 3.7T 1% /store/backup
/dev/mapper/safe-vault 3.7T 33M 3.7T 1% /vault
Nu is de device '/dev/mapper/safe-vault' gekoppeld aan de mount '/vault'.
Als we dit controleren dan vinden we tot nu toe alleen:
[root@mainserver ~]# ls -la /vault total 0 drwxr-xr-x 2 root root 6 Oct 19 16:05 . dr-xr-xr-x. 19 root root 268 Oct 19 16:10 ..
Bind Mounts Maken en Populeren
Nu maken we in onze 'centrale opslagruimtes' de bindmounts aan waar we de gebruikers- en Appdata op zullen slaan.
Om te beginnen maken we in 'datalive-live' de bindmounts aan
voor 'home', 'webroot', 'mysql' en 'system-mysql'
Verhuis HOME naar bindmount /store/live
Maak de bindmount directory
[root@mainserver ~]# mkdir /store/live/home
Verzamel informatie van de bron directory
[root@mainserver ~]# ls -la /home/|head -n2 total 0 drwxr-xr-x. 6 root root 66 Oct 16 10:55 .
Voer de commando's uit om de permissies van bron naar doel te synchroniseren
# chown --reference /home /store/live/home
# chmod --reference /home /store/live/home
Valideer resultaat:
[root@mainserver ~]# ls -la /store/live/home | head -n2 total 0 drwxr-xr-x 2 root root 6 Oct 19 16:24 .
Stop nu elke potentieel aanwezige service die momenteel de brondirectorie mogelijk gebruikt. Voor /home zou dat bijvoorbeeld Piwigo of Wordpress kunnen zijn waarvan de foto's in een /home subdirectory opgeslagen zijn, Samba die de verschillende /home shares beheert en/of BackupPC.
Voor de zekerheid:
# systemctl stop smb # systemctl stop httpd # systemctl stop backuppc # systemctl stop mariadb
Verhuis de data naar de nieuwe locatie:
[root@mainserver ~]# rsync -av --delete /home/* /store/live/home/.
Verifiëer dat de informatie op de nieuwe locatie is:
[root@mainserver ~]# ls -l /store/live/home total 0 drwx------ 2 archief allusers 62 Oct 16 10:36 archief drwx------ 2 beheerder allusers 103 Oct 18 11:39 beheerder drwx------ 2 files allusers 78 Oct 16 10:50 files drwx------ 2 website allusers 62 Oct 16 10:55 website
Verwijder de data uit de oude locatie:
[root@mainserver ~]# rm -rf /home/* [root@mainserver ~]# ls -l /home total 0
Maak de bindmount aan in /etc/fstab door een nieuwe lijn toe te voegen:
/store/live/home /home none bind,rw 0 0
Mount de toegevoegde device en verifiëer de bindmount :
[root@mainserver ~]# mount -a
[root@mainserver ~]# ls -l /home total 20 drwx------ 2 archief allusers 4096 Jun 9 12:35 archief drwx------ 2 beheerder allusers 4096 Jun 9 16:29 beheerder drwx------ 2 files allusers 4096 Jun 9 12:37 files drwx------ 2 website allusers 4096 Jun 9 12:54 website
Start de eventuele services die gestopt waren:
# systemctl start smb # systemctl start httpd # systemctl start backuppc # systemctl start mariadb
Verhuis Webroot naar bindmount /store/live
Wijzig eerst permissies van /var/www/html, zie Server::Samba Webserver
T.b.v. Samba zetten we de permissies van map /var/www/html als volgt:
# chown apache:lan /var/www/html # chown -R website:lan /var/www/html/* # chmod 770 /var/www/html
# chmod -R 751 /var/www/html/*
# find /var/www/html -type f -name '*' -exec chmod 644 '{}' \;
Maak de bindmount directory
# mkdir /store/live/webroot
Verzamel informatie van de bron directory
[root@mainserver ~]# ls -la /var/www/html |head -n2 total 144 drwxrwx--- 2 apache lan 80 Oct 16 09:04 .
Voer de commando's uit om de permissies van bron naar doel te synchroniseren
# chown --reference /var/www/html /store/live/webroot
# chmod --reference /var/www/html /store/live/webroot
Valideer resultaat:
[root@mainserver ~]# ls -al /store/live/webroot |head -n2 total 0 drwxrwx--- 2 website lan 6 Oct 19 16:50 .
Stop nu elke service die momenteel de bron directory mogelijk gebruikt.
# systemctl stop smb # systemctl stop httpd # systemctl stop backuppc # systemctl stop mariadb
Verhuis de data naar de nieuwe locatie:
[root@mainserver ~]# rsync -av --delete /var/www/html/* /store/live/webroot/.
Verifiëer dat de informatie op de nieuwe locatie is:
[root@mainserver ~]# ls -l /store/live/webroot total 144 -rw-r--r-- 1 website lan 109001 Oct 15 16:30 hardware.html -rw-r--r-- 1 website lan 9780 Apr 29 2019 index.html -rw-r--r-- 1 website lan 20008 Oct 15 15:34 logo.png -rw-r--r-- 1 website lan 23 Oct 15 18:11 phpinfo.php
Verwijder de data uit de oude locatie:
[root@mainserver ~]# rm -rf /var/www/html/* [root@mainserver ~]# ls -l /var/www/html total 0
Maak de bindmount aan in /etc/fstab door een nieuwe lijn toe te voegen:
/store/live/webroot /var/www/html none bind,rw 0 0
Mount de toegevoegde device en verifiëer de bindmount :
[root@mainserver ~]# mount -a [root@mainserver ~]# ls -l /var/www/html total 144 -rw-r--r-- 1 website lan 109001 Oct 15 16:30 hardware.html -rw-r--r-- 1 website lan 9780 Apr 29 2019 index.html -rw-r--r-- 1 website lan 20008 Oct 15 15:34 logo.png -rw-r--r-- 1 website lan 23 Oct 15 18:11 phpinfo.php
Start de eventuele services die gestopt waren:
# systemctl start smb # systemctl start httpd # systemctl start backuppc # systemctl start mariadb
Verhuis MySQL naar bindmount /store/live
Deze sectie gaat ervan uit dat de MariaDB Database Server (app-mariadb) uit de marketplace geïnstalleerd is.
Voor het verhuizen van MySQL data naar de centrale opslag hebben we te doen met twee locaties:
- /var/lib/mysql
- /var/lib/system-mysql
Maak de bindmount directories mysql en system-mysql
# mkdir /store/live/mysql
# mkdir
/store/live/system-mysql
Verzamel informatie van de bron directories
[root@mainserver ~]# ls -la /var/lib/mysql |head -n2 total 28712 drwxr-xr-x 4 mysql mysql 179 Oct 21 09:14 . [root@mainserver ~]# ls -la /var/lib/system-mysql |head -n2 total 280620 drwxr-xr-x 5 system-mysql system-mysql 250 Oct 21 09:15 .
Voer de commando's uit om de permissies van bron naar het doel te synchroniseren
# chown --reference /var/lib/mysql /store/live/mysql
# chmod --reference /var/lib/mysql /store/live/mysql
# chown --reference /var/lib/system-mysql /store/live/system-mysql
# chmod --reference /var/lib/system-mysql /store/live/system-mysql
Valideer resultaat:
[root@mainserver ~]#ls -al /store/live/mysql |head -n2 total 8 drwxr-xr-x 4 mysql mysql 179 Oct 21 09:14 . [root@mainserver ~]#ls -al /store/live/system-mysql |head -n2 total 8 drwxr-xr-x 5 system-mysql system-mysql 250 Oct 21 09:15 .
Stop nu elke service die momenteel de bron directory mogelijk gebruikt.
# systemctl stop mariadb
Verhuis de data naar de nieuwe locatie:
rsync -av --delete /var/lib/mysql/* /store/live/mysql/.
rsync -av --delete /var/lib/system-mysql/* /store/live/system-mysql/.
Verifiëer dat de informatie op de nieuwe locaties is:
[root@mainserver ~]# ls -l /store/live/mysql/.
total 28708 -rw-rw---- 1 mysql mysql 16384 Oct 19 17:30 aria_log.00000001 -rw-rw---- 1 mysql mysql 52 Oct 19 17:30 aria_log_control -rw-rw---- 1 mysql mysql 18874368 Oct 19 17:30 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Oct 19 17:30 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Oct 15 15:34 ib_logfile1 drwx------ 2 mysql mysql 8192 Oct 15 15:34 mysql drwx------ 2 mysql mysql 4096 Oct 15 15:34 performance_schema
[root@mainserver ~]# ls -l /store/live/system-mysql/. total 280616 -rw-rw---- 1 system-mysql system-mysql Oct 18 11:20 aria_log.00000001 -rw-rw---- 1 system-mysql system-mysql Oct 18 11:20 aria_log_control -rw-rw---- 1 system-mysql system-mysql Oct 21 09:15 ibdata1 -rw-rw---- 1 system-mysql system-mysql Oct 21 09:15 ib_logfile0 -rw-rw---- 1 system-mysql system-mysql Oct 15 15:34 ib_logfile1 drwx------ 2 system-mysql system-mysql Oct 15 15:34 mysql srwxrwxrwx 1 system-mysql system-mysql Oct 21 08:46 mysql.sock -rw-r--r-- 1 root root Oct 15 15:34 mysql_upgrade_info drwx------ 2 system-mysql system-mysql Oct 15 15:34 performance_schema drwx------ 2 system-mysql system-mysql Oct 17 03:22 reports
Verwijder de data uit de oude locatie:
[root@mainserver ~]# rm -rf /var/lib/mysql/* [root@mainserver ~]# ls -l /var/lib/mysql total 0
[root@mainserver ~]# rm -rf /var/lib/system-mysql/* [root@mainserver ~]# ls -l /var/lib/system-mysql total 0
Maak de bindmounts aan in /etc/fstab door 2 nieuwe lijnen toe te voegen:
/store/live/mysql /var/lib/mysql none bind,rw 0 0
/store/live/system-mysql /var/lib/system-mysql none bind,rw 0 0
Mount de toegevoegde devices en verifiëer de bindmounts :
[root@mainserver ~]# mount -a [root@mainserver ~]# ls -l /var/lib/mysql -rw-rw---- 1 mysql mysql 16384 Oct 19 17:30 aria_log.00000001 -rw-rw---- 1 mysql mysql 52 Oct 19 17:30 aria_log_control -rw-rw---- 1 mysql mysql 18874368 Oct 19 17:30 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Oct 19 17:30 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Oct 15 15:34 ib_logfile1 drwx------ 2 mysql mysql 8192 Oct 15 15:34 mysql drwx------ 2 mysql mysql 4096 Oct 15 15:34 performance_schema [root@testserver ~]# ls -l /var/lib/system-mysql total 280616 -rw-rw---- 1 system-mysql system-mysql Oct 18 11:20 aria_log.00000001 -rw-rw---- 1 system-mysql system-mysql Oct 18 11:20 aria_log_control -rw-rw---- 1 system-mysql system-mysql Oct 21 09:15 ibdata1 -rw-rw---- 1 system-mysql system-mysql Oct 21 09:15 ib_logfile0 -rw-rw---- 1 system-mysql system-mysql Oct 15 15:34 ib_logfile1 drwx------ 2 system-mysql system-mysql Oct 15 15:34 mysql srwxrwxrwx 1 system-mysql system-mysql Oct 21 08:46 mysql.sock -rw-r--r-- 1 root root Oct 15 15:34 mysql_upgrade_info drwx------ 2 system-mysql system-mysql Oct 15 15:34 performance_schema drwx------ 2 system-mysql system-mysql Oct 17 03:22 reports
Start de services die gestopt waren:
# systemctl start mariadb
Verhuis Configuratie Backup naar bindmount /store/backup
Maak de bindmount directory
# mkdir /store/backup/configuration_backup
Verzamel informatie van de bron directory
[root@mainserver /]# ls -la /var/clearos/configuration_backup |head -n2 total 412 drwxr-xr-x. 3 root root 226 Oct 17 03:50 .
Voer de commando's uit om de permissies van bron naar doel te synchroniseren
# chown --reference /var/clearos/configuration_backup /store/backup/configuration_backup
# chmod --reference /var/clearos/configuration_backup /store/backup/configuration_backup
Valideer resultaat:
[root@mainserver /]# ls -al /store/backup/configuration_backup |head -n2 total 0 drwxr-xr-x 2 root root 6 Oct 21 09:52 .
Verhuis de data naar de nieuwe locatie:
# rsync -av --delete /var/clearos/configuration_backup/* /store/backup/configuration_backup/.
Verifiëer dat de informatie op de nieuwe locatie is:
[root@mainserver /]# ls -l /store/backup/configuration_backup total 408 -rw------- 1 root root 79663 Oct 15 03:50 backup-localhost_... .tgz -rw-r--r-- 1 root root 2284 Oct 17 03:50 installed_apps.txt drwxrwxr-x 2 root webconfig 6 Apr 22 20:37 upload
Verwijder de data uit de oude locatie:
[root@mainserver /]# rm -rf /var/clearos/configuration_backup/* [root@mainserver /]# ls -l /var/clearos/configuration_backup total 0
Maak de bindmount aan in /etc/fstab door een nieuwe lijn toe te voegen:
/store/backup/configuration_backup /var/clearos/configuration_backup none bind,rw 0 0
Mount de toegevoegde device en verifiëer de bindmount :
[root@mainserver ~]# mount -a [root@mainserver ~]# ls -l /var/clearos/configuration_backup total 408 -rw------- 1 root root 79663 Oct 15 03:50 backup-localhost_... .tgz -rw-r--r-- 1 root root 2284 Oct 17 03:50 installed_apps.txt drwxrwxr-x 2 root webconfig 6 Apr 22 20:37 upload
Verhuis BackupPC naar bindmount /store/backup
Maak de bindmount directory
# mkdir /store/backup/backuppc
Verzamel informatie van de bron directory
[root@mainserver /]# ls -la /var/lib/BackupPC |head -n2 total 4 drwxr-x--- 6 backuppc root 54 Oct 15 15:34 .
Voer de commando's uit om de permissies van bron naar doel te synchroniseren
# chown --reference /var/lib/BackupPC /store/backup/backuppc
# chmod --reference /var/lib/BackupPC /store/backup/backuppc
Valideer resultaat:
[root@mainserver /]# ls -al /store/backup/backuppc|head -n2 total 0 drwxr-x--- 2 backuppc root 6 Oct 21 10:11 .
Stop nu elke service die momenteel de bron directory mogelijk gebruikt.
# systemctl stop backuppc
Verhuis de data naar de nieuwe locatie
LET OP!!
De BackupPC-bestanden bevatten eindeloos veel 'hardlinks' (naar de bestanden in de basis (full) backup).
Voeg de rsync optie -H toe, zodat de hardlinks gecopieerd worden en niet het bestanden waarnaar ze verwijzen
# rsync -avH --delete /var/lib/BackupPC/* /store/backup/backuppc/.
Verifiëer dat de informatie op de nieuwe locatie is:
[root@mainserver /]# ls -l /store/backup/backuppc total 0 drwxr-x--- 2 backuppc root 10 Apr 28 2017 cpool drwxr-x--- 2 backuppc root 10 Apr 28 2017 pc drwxr-x--- 2 backuppc root 10 Apr 28 2017 pool drwxr-x--- 2 backuppc root 10 Apr 28 2017 trash
Verwijder de data uit de oude locatie:
[root@mainserver /]# rm -rf /var/lib/BackupPC/* [root@mainserver /]# ls -l /var/lib/BackupPC total 0
Maak de bindmount aan in /etc/fstab door een nieuwe lijn toe te voegen:
/store/backup/backuppc /var/lib/BackupPC none bind,rw 0 0
Mount de toegevoegde device en verifiëer de bindmount :
[root@testserver ~]# mount -a [root@mainserver /]# ls -l /var/lib/BackupPC total 0 drwxr-x--- 2 backuppc root 10 Apr 28 2017 cpool drwxr-x--- 2 backuppc root 10 Apr 28 2017 pc drwxr-x--- 2 backuppc root 10 Apr 28 2017 pool drwxr-x--- 2 backuppc root 10 Apr 28 2017 trash
Start de services die gestopt waren:
# systemctl start backuppc