Home

 

Server::Gebruikersdata Opslag

Naar index

Centrale Opslag van Gebruikersdata


  


Overal data
Bij de ClearOS 7.x distributies en eerder worden belangrijke gebruikersdata op diverse locaties bewaard. Bijvoorbeeld de Home directories bevinden zich in /home, BackupPC in /var/lib/BackupPC, www-default in /var/www/html, etc. Het centraliseren van gebruikersdata helpt niet alleen met opslagbeheer, maar vereenvoudigt ook backupbeheer.

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.

Naar index

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

   


Logical Volume's (LV) zoals: root, var, logs en swap

Volume Group's (VG) zoals: main en data

Physical Volume's (PV) zoals: sda2, sda3, sdb1 en sdc1

Dingen die LVM kan doen:

Naar index

Aanbevolen structuur
ClearOS recommendeert tenminste 3 fysieke partities op het systeem:

  1. /boot
  2. LVM Volume Group 'main' voor systeem data
  3. 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).

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

Naar index

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

Naar index

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.

Naar index

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

Naar index

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

Naar index

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 

Naar index

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

Naar index

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 ..

Naar index

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.

Naar index

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

Naar index

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

Naar index

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 

Naar index

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

Naar index

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 ..

Naar index

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'.

Naar index

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

Naar index

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

Naar index

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

Naar index

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

Naar index

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 

Naar index

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

Naar index

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 ..

Naar index

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

Naar index

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

Naar index

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

Naar index

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

Naar index

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

Naar index

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

Naar index

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:

Maak de bindmount directories mysql en system-mysql

# mkdir /store/live/mysql
# mkdir /store/live/system-mysql

Naar index

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

Naar index

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/.

Naar index

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

Naar index

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

Naar index

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 

Naar index

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

Naar index

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

Naar index

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

Naar index

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

Naar index

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

Naar index

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 

Naar index