Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

He mea pono iaʻu e hoʻihoʻi i ka pūnaewele i 2C-Bitrix: Site Management 1 manawa i ka lā (faila a me mysql database) a mālama i ka mōʻaukala o nā loli no 90 mau lā.

Aia ka pūnaewele ma kahi VDS e holo ana i CentOS 7 me "1C-Bitrix: Web Environment" i hoʻokomo ʻia. Eia hou, e hana i kope kope o nā hoʻonohonoho OS.

Manaʻo:

  • Ka pinepine - 2 manawa i ka lā;
  • E mālama i nā kope no nā lā he 90 i hala iho nei;
  • Ka hiki ke kiʻi i nā faila pākahi no kahi lā kikoʻī, inā pono;
  • Pono e mālama ʻia ka waihona ma kahi kikowaena ʻikepili ma waho o VDS;
  • Ka hiki ke komo i ka waihona mai nā wahi a pau (kekahi kikowaena, kamepiula kūloko, etc.).

ʻO kahi mea koʻikoʻi ʻo ka hiki ke hana wikiwiki i nā backup me ka liʻiliʻi o ka hoʻohana ʻana i nā wahi hou a me nā kumuwaiwai ʻōnaehana.

ʻAʻole kēia e pili ana i kahi snapshot no ka hoʻihoʻi wikiwiki ʻana i ka ʻōnaehana holoʻokoʻa, akā e pili ana i nā faila a me ka waihona a me ka mōʻaukala o nā loli.

ʻIke mua:

  • VDS ma XEN virtualization;
  • OS CentOS 7;
  • 1C-Bitrix: Kaiapuni pūnaewele;
  • Paena e pili ana i "1C-Bitrix: Site Management", mana maʻamau;
  • ʻO 50 GB ka nui o ka faila a e ulu;
  • ʻO 3 GB ka nui o ka waihona a e ulu.

Kākoʻo maʻamau i kūkulu ʻia i loko o 1C-Bitrix - kāpae koke ʻia. He kūpono no nā wahi liʻiliʻi wale nō, no ka mea:

  • Hana i kahi kope piha o ka pūnaewele i kēlā me kēia manawa, kēlā me kēia, e lawe ʻia kēlā me kēia kope e like me ka nui o koʻu lawe ʻana i nā faila, i koʻu hihia he 50 GB.
  • Hoʻopau ʻia ka hoʻihoʻi ʻana me ka PHP, ʻaʻole hiki ke hoʻohana ʻia me ka nui o nā faila, e hoʻonui i ka server a ʻaʻole e pau.
  • A ʻoiaʻiʻo, ʻaʻohe kamaʻilio e pili ana i nā lā 90 i ka wā e mālama ai i kahi kope piha.

ʻO ka hoʻonā i hāʻawi ʻia e ka mea hoʻokele he disk backup aia ma ka kikowaena data like me ka VDS, akā ma kahi kikowaena ʻē aʻe. Hiki iā ʻoe ke hana me ka disk ma o FTP a hoʻohana i kāu mau palapala ponoʻī, a i ʻole inā hoʻokomo ʻia ʻo ISPManager ma ka VDS, a laila ma o kāna module backup. ʻAʻole kūpono kēia koho ma muli o ka hoʻohana ʻana i kahi kikowaena data like.

Mai nā mea a pau i luna aʻe nei, ʻo ka koho maikaʻi loa iaʻu he waihona hoʻonui e like me kaʻu hiʻohiʻona ponoʻī ma Yandex.Cloud (Object Storage) a i ʻole Amazon S3 (Amazon Simple Storage Service).

Pono kēia:

  • ke aʻa i ka VDS;
  • i hoʻokomo ʻia i nā mea hana pālua;
  • mooolelo ma Yandex.Cloud.

waihona hoʻonui - he ala e hoʻopaʻa ʻia ai nā ʻikepili i loli mai ka waihona hope loa.

kope hoʻopunipuni - kahi mea hoʻohana i hoʻohana i nā algorithm rsync a hiki ke hana pū me Amazon S3.

Yandex.Cloud vs Amazon S3

ʻAʻohe ʻokoʻa ma waena o Yandex.Cloud a me Amazon S3 i kēia hihia noʻu. Kākoʻo ʻo Yandex i ka ʻāpana nui o ka Amazon S3 API, no laila hiki iā ʻoe ke hana pū me ia me ka hoʻohana ʻana i nā hoʻonā i loaʻa no ka hana ʻana me S3. I koʻu hihia, ʻo ia ka mea hoʻohana duplicity.

ʻO ka pono nui o Yandex hiki ke uku i nā rubles, inā he nui ka ʻikepili, a laila ʻaʻohe loulou i ka papa. Ma ke ʻano o ka wikiwiki, hana like nā kikowaena data ʻEulopa o Amazon me nā Lūkini ma Yandex, no ka laʻana, hiki iā ʻoe ke hoʻohana iā Frankfurt. Ua hoʻohana mua au iā Amazon S3 no nā hana like, i kēia manawa ua hoʻoholo wau e hoʻāʻo iā Yandex.

Hoʻonohonoho i ka Yandex.Cloud

1. Pono ʻoe e hana i kahi moʻokāki ma Yandex.Cloud. No ka hana ʻana i kēia, pono ʻoe e komo i Yandex.Cloud ma o kāu moʻokāki Yandex a i ʻole e hana i kahi mea hou.

2. Hana i ke ao.
Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

3. Ma ka "Cloud" e hana i kahi "Catalog".
Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

4. No ka "Catalogue" e hana i kahi "Service account".
Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

5. No ka "Service account" e hana i nā kī.
Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

6. E mālama i nā kī, pono ʻoe iā lākou i ka wā e hiki mai ana.
Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

7. No ka "Catalog" e hana i "Bucket", e hāʻule nā ​​faila i loko.
Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

8. Manaʻo wau e kau i kahi palena a koho i ka "Cold Storage".
Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

Ke hoʻonohonoho nei i nā waihona i hoʻonohonoho ʻia ma ke kikowaena

Hāʻawi kēia alakaʻi i nā mākau hoʻokele kumu.

1. E hoʻouka i ka pono hana pālua ma ka VDS

yum install duplicity

2. E hana i kahi waihona no mysql dumps, i koʻu hihia ʻo ia /backup_db i ke kumu VDS

3. E hana i kahi waihona no ka bash scripts /backup_scripts a hana i ka palapala mua e hoʻihoʻi /backup_scripts/backup.sh

Maʻiʻo palapala:

#!`which bash`


# /backup_scripts/backup.sh

# Это условие проверяет не идёт ли в данный момент процесс резервного копирования, если идёт, то на email отправляется сообщение об ошибке (этот блок можно не использовать)
if [ -f /home/backup_check.mark ];
then

DATE_TIME=`date +"%d.%m.%Y %T"`;

/usr/sbin/sendmail -t <<EOF
From:backup@$HOSTNAME
To:<Ваш EMAIL>
Subject:Error backup to YANDEX.CLOUD
Content-Type:text/plain; charset=utf-8
Error backup to YANDEX.CLOUD

$DATE_TIME
EOF

else

# Основной блок отвечающий за резервное копирование
# Если нет ощибки ставим метку и запускаем backup

echo '' > /home/backup_check.mark;


# Удаляем файлы с дампами базы оставшиеся от предыдущего backup

/bin/rm -f /backup_db/*


# Делаем дамп всех mysql баз, предполагается что доступ добавлен в файле /root/.my.cnf

DATETIME=`date +%Y-%m-%d_%H-%M-%S`;

`which mysqldump` --quote-names --all-databases | `which gzip` > /backup_db/DB_$DATETIME.sql.gz


# Добавляем данные для отправки в Яндекс.

export PASSPHRASE=<Придумайте пароль для шифрования архива>
export AWS_ACCESS_KEY_ID=<Идентификатор ключа полученный у Яндекса>
export AWS_SECRET_ACCESS_KEY=<Секретный ключ полученный у Яндекса>


# Запускаем duplicity для резервирования необходимых папок на сервере.
# Данная команда будет создавать полный backup раз в месяц и до следующего месяца добавлять инкрементальные к нему
# -- exclude это папки, которые нужно исключить, я исключаю все папки с кешем битрикса
# --include папки которые нужно резервировать в моём случае это:
# - /backup_db
# - /home
# - /etc
# s3://storage.yandexcloud.net/backup , backup это имя созданного выше бакета

# Техническая особенность и значения некоторых параметров:
# Две строки "--exclude='**'" и "/" нужны, чтобы можно было выше оперировать --include и --exclude для разных папок. Эти две строчки сначала добавляют в бэкап весь сервер "/", потом исключают его "--exclude='**'"
# --full-if-older-than='1M' - создавать полную копию каждый месяц
# --volsize='512' - максимальный размер каждого из файлов в бэкапе в мегабайтах
# --log-file='/var/log/duplicity.log' - куда писать лог файл

`which duplicity` 
    --s3-use-ia --s3-european-buckets 
    --s3-use-new-style 
    --s3-use-multiprocessing 
    --s3-multipart-chunk-size='128' 
    --volsize='512' 
    --no-print-statistics 
    --verbosity=0 
    --full-if-older-than='1M' 
    --log-file='/var/log/duplicity.log' 
    --exclude='**/www/bitrix/backup/**' 
    --exclude='**/www/bitrix/cache/**' 
    --exclude='**/www/bitrix/cache_image/**' 
    --exclude='**/www/bitrix/managed_cache/**' 
    --exclude='**/www/bitrix/managed_flags/**' 
    --exclude='**/www/bitrix/stack_cache/**' 
    --exclude='**/www/bitrix/html_pages/*/**' 
    --exclude='**/www/bitrix/tmp/**' 
    --exclude='**/www/upload/tmp/**' 
    --exclude='**/www/upload/resize_cache/**' 
    --include='/backup_db' 
    --include='/home' 
    --include='/etc' 
    --exclude='**' 
    / 
    s3://storage.yandexcloud.net/backup



# Данная команда нужна для чистки.
# Она оставляет 3 последних полных backup и ассоциированных с ними инкрементальных backup.
# Т.о. у меня остаются backup за 3 месяца, т.к. первая команда каждый месяц делает новый полный backup

`which duplicity` remove-all-but-n-full 3 --s3-use-ia --s3-european-buckets --s3-use-new-style --verbosity=0 --force s3://storage.yandexcloud.net/backup



unset PASSPHRASE
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY

# Удаляем метку об идущем backup

/bin/rm -f /home/backup_check.mark;

fi

4. E holo i ka palapala no ka manawa mua a nānā i ka hopena, pono e ʻike ʻia nā faila ma ka Bākeke.

`which bash` /backup_scripts/backup.sh

Kākoʻo VDS hoʻonui me kahi pūnaewele ma 1C-Bitrix ma Yandex.Cloud

5. Hoʻohui i kahi palapala i cron no ka mea hoʻohana kumu e hoʻokō ʻia i 2 mau manawa i ka lā, a i ʻole e like me kou makemake.

10 4,16 * * * `which bash` /backup_scripts/backup.sh

Hoʻihoʻi ʻikepili mai Yandex.Cloud

1. E hana i kahi waihona hoʻihoʻi /backup_restore

2. Hana i ka bash restore script /backup_scripts/restore.sh

Hāʻawi wau i ka laʻana i noi ʻia no ka hoʻihoʻi ʻana i kahi faila kikoʻī:

#!`which bash`

export PASSPHRASE=<Пароль для шифрования архива используемый при бэкапе>
export AWS_ACCESS_KEY_ID=<Идентификатор ключа полученный у Яндекса>
export AWS_SECRET_ACCESS_KEY=<Секретный ключ полученный у Яндекса>

# 3 примера, раскомментировать нужный

# Получить статус backup
#`which duplicity` collection-status s3://storage.yandexcloud.net/backup

# Восстановить index.php из корня сайта
#`which duplicity` --file-to-restore='home/bitrix/www/index.php' s3://storage.yandexcloud.net/backup /backup_restore/index.php

# Восстановить index.php из корня сайта 3х дневной давности
#`which duplicity` --time='3D' --file-to-restore='home/bitrix/www/index.php' s3://storage.yandexcloud.net/backup /backup_restore/index.php

unset PASSPHRASE
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY

3. E holo i ka palapala a kali i ka hopena.

`which bash` /backup_scripts/backup.sh

Ma ka waihona /backup_restore/ e ʻike ʻoe i ka faila index.php i hoʻokomo mua ʻia i ka waihona.

Hiki iā ʻoe ke hana i nā hoʻololi maikaʻi e kūpono i kāu mau pono.

hoʻemi i ka pālua

Loaʻa i ka Duplicity hoʻokahi drawback - ʻaʻohe ala e hoʻonohonoho i kahi palena hoʻohana channel. Me kahi kaila maʻamau, ʻaʻole kēia e hoʻokumu i kahi pilikia, akā me kahi kahawai DDoS-pale ʻia me ka wikiwiki o kēlā me kēia lā, makemake wau e hoʻonoho i kahi palena o 1-2 megabits.

Ma ke ʻano he hopena

ʻO ke kākoʻo ʻana ma Yandex.Cloud a i ʻole Amazon S3 e hāʻawi i kahi kope kūʻokoʻa o ka pūnaewele a me nā hoʻonohonoho OS hiki ke kiʻi ʻia mai kekahi kikowaena ʻē aʻe a i ʻole kamepiula kūloko. I ka manawa like, ʻaʻole ʻike ʻia kēia kope ma ka papa hoʻokele hoʻokipa a i ʻole ma ka Bitrix admin panel, e hāʻawi ana i ka palekana hou aʻe.

I ka hopena pōʻino loa, hiki iā ʻoe ke kūkulu i kahi kikowaena hou a kau i ka pūnaewele no kēlā me kēia lā. ʻOiai ʻo ka hana i noi ʻia ʻo ia ka hiki ke komo i ka faila no kahi lā kikoʻī.

Hiki iā ʻoe ke hoʻohana i kēia ʻenehana me nā VDS a i ʻole nā ​​kikowaena kikowaena a me nā pūnaewele ma nā ʻenekini, ʻaʻole wale ʻo 1C-Bitrix. Hiki i ka OS ke lilo i CentOS, e like me Ubuntu a i ʻole Debian.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka