Migrate Data to Another Disk
High disk load may lead to delays in event arrivals. In severe cases, it might result in complete inoperability of FindFace. One of the means for reducing the disk load is to migrate the FindFace data storages to another disk.
In this section:
Prepare Disk
To prepare a disk for the data migration, do the following:
Create a new mount point (
/mnt/ffdata
in our example).sudo mkdir /mnt/ffdata sudo chown ntech:ntech /mnt/ffdata
Create a partition.
sudo parted /dev/sdb mklabel gpt mkpart primary ext4 1MiB 100% q sudo mkfs.ext4 /dev/sdb1
Learn the UUID of the partition (
sdb1
in our example).sudo blkid | grep sdb1 /dev/sdb1: LABEL="data" UUID="0638ebe0-853e-43ea-8f35-bfae305695d1" TYPE="ext4" PARTUUID="8cebaacc-77d7-4757-b4c6-14147e92646c"
Add the partition to fstab to make it automatically mount on booting.
sudo vi /etc/fstab ------------ #DATA mount UUID=0638ebe0-853e-43ea-8f35-bfae305695d1 /mnt/ffdata/ ext4 auto,user,rw 0 2 -------------
Mount all the filesystems.
sudo mount -a
Migrate Photo Storage
To migrate the FindFace photo storage, do the following:
Stop the
findface-security
service to prevent the data loss.sudo systemctl stop findface-security
By default, the photo data are stored at
/var/lib/
. Migrate the photo storage to the new disk.sudo cp -ax /var/lib/findface-security/ -R /mnt/ffdata/ sudo rm -r /var/lib/findface-security/ sudo cp -ax /var/lib/ffupload/ -R /mnt/ffdata/ sudo rm -r /var/lib/ffupload/
Create symbolic links for the new directories.
sudo ln -s /mnt/ffdata/findface-security/ /var/lib/ sudo ln -s /mnt/ffdata/ffupload/ /var/lib/
Ensure that the rights are correctly assigned.
sudo chown ntech:ntech /mnt/ffdata/findface-security/
Start the
findface-security
service.sudo systemctl start findface-security
Migrate Main Database (PostgreSQL)
To migrate the PostgreSQL database, do the following:
Learn the current database directory.
postgres=# SHOW data_directory; data_directory ------------------------------ /var/lib/postgresql/10/main
Stop PostgreSQL.
sudo systemctl stop postgresql
Create a new directory that will hold the database and assign it to the ntech user.
mkdir postgres_data_dir chown ntech postgres_data_dir
Migrate the database and backup the old one.
sudo rsync -av /var/lib/postgresql /test/postgres_data_dir/ sudo mv /var/lib/postgresql/10/main /backups/pg_backup
Substitute the directory in the PostgreSQL configuration file
<PostgreSQL directory>/postgresql.conf
.data_directory = '/test/postgres_data_dir/postgresql/10/main'
Start PostgreSQL.
sudo systemctl start postgresql
Check if the directory has successfully been changed.
postgres=# SHOW data_directory; data_directory -------------------------------------------- /test/postgres_data_dir/postgresql/10/main