Быстрая настройка OpenDedup (SDFS)

#Log in as root

#Install the SDFS File System

#Если у вас корпоративный прокси:
echo 'https_proxy = https://proxy:3128
http_proxy = https://proxy:3128
ftp_proxy = https://proxy:3128
no_proxy="localhost,127.0.0.0/8,10.0.0.0/8,172.27.0.0/12,192.168.0.0/16,172.29.0.0/12"' >> /etc/wgetrc

wget https://www.opendedup.org/downloads/sdfs-latest.rpm
yum install sdfs-latest.rpm attr

#Change the maximum number of open files allowed

echo "* hard nofile 65535" >> /etc/security/limits.conf
echo "* soft nofile 65535" >> /etc/security/limits.conf

Создание сущности

pvcreate /dev/sdb #Создаем PV из виртуальной сущности
vgcreate dedup_vg /dev/sdb
lvcreate dedup_vg -l 100%FREE
mkfs.xfs /dev/mapper/dedup_vg-lvol0

mkdir -p /opt/sdfs/volumes/sdfs_pool0/
echo "/dev/mapper/dedup_vg-lvol0 /opt/sdfs/volumes/sdfs_pool0/       xfs     defaults 0       0" >> /etc/fstab
mount -a

mkfs.sdfs --volume-name=sdfs_pool0 --volume-capacity=256GB  --backup-volume  #Create the SDFS Volume. This will create a volume with 256 GB.
mkdir /dedup                                                #Create a mount point on the filesystem for the volume

sed -i '3iMEM="6000"' /sbin/mount.sdfs                      #Костыль
mount.sdfs -v sdfs_pool0 -m /dedup                          #Mount the Volume

Подключение к ПО РК

Через протокол S3

# Установить Docker
yum install -y docker
systemctl enable docker
systemctl start docker

#Запустить контейнер
docker run -p 80:9000 --name minio1 -v /dedup/s3:/data -v /root/.minio:/root/.minio -d  \
-e "MINIO_ACCESS_KEY=admin" \
-e "MINIO_SECRET_KEY=password" \
-e "MINIO_HTTP_TRACE=/dev/stdout" \
--restart unless-stopped minio/minio server /data

Дальше настраиваем подключение в зависимости от используемого ПО резервного копирования для работы с созданным сервером S3.

Через агента Bareos Storage Daemon

#Устанавливаем пакеты
wget -O /etc/yum.repos.d/bareos.repo https://download.bareos.org/bareos/release/latest/CentOS_7/bareos.repo
yum install -y bareos-sd

Создаем конфигурационный файл на сервере хранилища:

/etc/bareos/bareos-sd.d/device/sdfs.conf
Device {
  Name = sdfs
  Media Type = File
  Archive Device = /dedup           # Точка монтирования хранилища
  LabelMedia = yes;                 # lets Bareos label unlabeled media
  Random Access = yes;
  AutomaticMount = yes;             # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
  Description = "File device. A connecting Director must have the same Name and MediaType."
  Maximum Spool Size = 1G;
}

На сервере резервного копирования создаем конфигурационный файл:

/etc/bareos/bareos-dir.d/storage/File-sdfs.conf
Storage {
  Name = File_sdfs
  Address = 172.27.67.21                                        # Адрес сервера, на котором установлен SD
  Password = "gh66GvtST3xmf0D95zWZ6VPnFGsuIrpVEQx0Yl2QiG/j"     # Пароль сервера, на котором установлен SD, из файла /etc/bareos/bareos-sd.d/director/bareos-dir.conf
  Device = sdfs
  Media Type = File
}

На сервере хранилища

systemctl start bareos-sd
systemctl enable bareos-sd

На сервере резервного копирования

systemctl restart bareos-dir

Мониторинг результатов

watch sdfscli --volume-info

Обслуживание

Очистка репозитория после удаления данных

setfattr -n user.cmd.cleanstore -v 5555:15 /dedup #Не работает