Torgholodmash.ru

ТоргХолодМаш
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Cкоростная синхронизация миллиарда файлов

Cкоростная синхронизация миллиарда файлов

Есть несколько идентичных серверов (4 ноды) на Amazon EC2 с Ubuntu. Каждый генерирует и хранит у себя на диске кэш, который хотелось бы синхронизировать. Но простой rsync тут не подойдет — файлов несколько миллиардов, nfs — слишком медлителен, и т. д. Полный список рассмотренных вариантов с пояснениями ниже.

К тому же, время от времени нужно удалять устаревшие файлы сразу на всех серверах, что пока делается вручную и занимает несколько суток. Вопрос наиболее быстрой для такого Use Case файловой системы планирую описать позже. Оговорюсь только, что по нескольким причинам была выбрана XFS.

После теста нескольких кластерных технологий и файловых систем, по совету старшего товарища, решили использовать тот же rsync, но в связке с inotify. Немного поискав в интернете готовое такое решение, дабы не изобретать велосипед, наткнулся на csyncd, inosync и lsyncd. На хабре уже была статья о csyncd, но он тут не подходит, т.к. хранит список файлов в базе SQLite, которая вряд-ли сможет сносно работать даже с миллионом записей. Да и лишнее звено при таких объемах ни к чему. А вот lsyncd оказался именно тем, что нам и было нужно.

UPD: Как показала практика, необходимо ощутимое измение и дополние в тексте. Я решил внести лишь незначительные правки в основную часть, а новыми выводами поделиться в конце статьи.

Ubuntu One Setup

Если вы еще не настроили Ubuntu One, вам придется настроить его перед синхронизацией файлов. Нажмите значок почты на панели и выберите « Ubuntu One ».

Нажмите кнопку « Присоединиться сейчас » и создайте учетную запись.

На других компьютерах нажмите «У меня уже есть учетная запись! »И войдите в свою учетную запись.

Читать еще:  В windows 7 не может синхронизировать время

После этого вы получите папку «Ubuntu One» в вашей домашней папке. Все файлы в этой папке автоматически синхронизируются между вашими компьютерами.

Rsync: локальное копирование/синхронизация каталогов

Rsync можно использовать для копирования файлов между локальными директориями сервера. Если вам нужно скопировать файлы из одной директории в другую, выполните команду:

# rsync /var/www/html/package.zip /var/www/tmp/

В этом случае файл package.zip был просто скопирован в директорию /var/www/tmp/.

Можно добавить несколько опций для выполнения копирования. Например, чтобы перед выполнением копирования предварительно сжать файл, вывести подробную информацию и прогресс копирования файла, выполните:

# rsync -vz —progress /var/www/html/package.zip /var/www/tmp/

rsync - копирование файлов с отображением прогресса

Вы можете использовать rsync для синхронизации содержимого локальных каталогов. Например, rsync удобно использовать, когда вам требуется скопировать файлы из рабочей директории, на хранилище, которое примонтировано к какому-то разделу. Несколько примеров команд:

# rsync -zvr /var/www/site /backup/

Мы скопировали директорию /var/www/site в директорию для резервных копий, опция -r позволила рекурсивно скопировать все вложенные директории и файлы.

Чтобы сохранить все атрибуты файлов при копировании, например, дату изменения и дату создания файлов, добавьте ключ -a:

# rsync -zvra /var/www/site /backup/

rsync синхронизация с сохранением атрибутов

Если вы хотите скопировать только измененные файлы, добавьте опцию -c:

# rsync -zvrac /var/www/site /backup/

Я изменил только один файл и запустил команду. В результате в целевую директорию, был скопирован только измененный файл.

rsync -zvrac копирование только измененных файлов

Очень удобно использовать такую опцию, если файлы меняются не часто. Таким образом вы экономите время на копирование/синхронизацию директории.

Чтобы не захламлять директорию для бэкапов, можно добавить опцию —delete, это позволит сравнить файлы с источником и в случае присутствия файла в целевой директории и отсутствие его в исходной директории, удалить его автоматически. Но призываю использовать данную опцию с осторожностью, так как если вы настроите копирование директории по крону, в случае сбоя или вмешательства из вне в рабочую директорию, с последующим удалением рабочих файлов, у вас затрется информация и в бэкапах, что не позволит вам восстановить ваши данные. Пример:

Читать еще:  Синхронизация с компьютером fly iq441

# rsync -zvrac —delete /var/www/site /backup/

rsync копирование с удалением

Rclone предлагает множество опций

Что делает Rclone особенным, так это то, что он требует загружает различные тарелкиFormes , всего более 40, для размещения файлов и каталогов, доступных в облаке. Вот список:

  • Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dreamhost, Dropbox, FTP, Google Cloud Storage, Google Drive, Hubic, IBM COS S3.
  • Memset Memstore, Mega, Storage Blob Microsoft Azure, Microsoft OneDrive, Minio, Nextcloud, OVH, OpenDrive, Openstack Swift. Oracle Cloud Storage, ownCloud, pCloud, put.io, QingStor, Rackspace Cloud Files, SFTP, Wasabi, WebDAV, Яндекс Диск.

Фотографии

После того, как сервис для хранения фотографий flickr проявил невиданную щедрость и раздал всем пользователям по терабайту дискового пространства, я понял, что хочу им пользоваться. Вот как я организовал хранение и синхронизацию фотографий: при подключении смартфона к wi-fi сети, все новые фотографии автоматически синхронизируются между устройствами благодаря Dropbox. После того, как синхронизация заканчивается, я заливаю их на flickr при помощи удобного приложения Flickr Uploader.

Ubuntu One

Ubuntu One — сервис, предоставляемый компанией Canonical , для синхронизации файлов между компьютерами под управлением ОС Ubuntu.

Клиент создает папку

/Ubuntu One. Перетащив в нее нужные файлы, вы поместите их на сервер.

Для пользования сервисом надо сначала зарегистрироваться на сайте one.ubuntu.com .

Достоинства Ubuntu One

  • Отличная интеграция с рабочим столом Ubuntu (реализовано как апплет для панели gnome).
  • Возможность синхронизации закладок, записок tomboy, контактов, сообщений, почты и т.д.
  • Интеграция с Nautilus

Недостатки Ubuntu One

  • На данный момент реализован клиент только для ОС Ubuntu. Недавно стал доступен клиент Ubuntu One для среды KDE (Kubuntu). Ожидается появление клиента для Fedora, но пока все глухо. Т.е. кроссплатформенность никакая;
  • Закрытый исходный код серверной части;
  • Сложный для использования интерфейс клиентской части (ИМХО не только мое) и отсутствие гибкости в настройках;
  • Неочевидность работы. Например, для синхронизации используется асинхронный режим работы, т.е. спрогнозировать, когда произойдет синхронизация, практически невозможно. Таким образом, Ubuntu One — это не для быстрого обмена.
  • Лично я столкнулся с тем, что не все компьютеры распознаются сервисом как новые. Следовательно я не могу добавить их в облако. Возможно, что только мне так не везет, но я думаю, это связано с передыдущим пунктом, т.е. с асинхронностью работы сервиса;
  • Общий доступ к файлам открывается только через вэб-интерфейс.
Читать еще:  Нужно ли включать синхронизацию в компьютере

Итоги

Указанных недостатком мне хватило, чтобы отказаться от Ubuntu One, но кому-то может быть очень удобно из-за интеграции в Ubuntu по умолчанию.

Проверка на ошибки

Этот процесс также проводится с помощью fsck.

  1. Выяснить имена файлового меню в консоли (войти с помощью Alt, F1) командой df -h.
  2. Размонтировать исправленную утилиту umount /dev/hda1.
  3. Включить утилиту fsck /dev/hda1.
  4. Сделать проверку командой fsck -y -f -c /dev/hda1 .

Если все сделано правильно, то проверка будет осуществлена.

  • 0 – нет ошибок;
  • 1 – ошибки элемента исправлены;
  • 2 – необходима перезагрузка утилиты;
  • 4 – ошибки элемента не исправлены;
  • 8 – в процессе проверки произошли ошибки;
  • 16 – неверное использование команды либо синтаксическая ошибка;
  • 32 – fsck была прервана пользователем;
  • 128 – ошибка разделяемых объектов.

Далее нужно в соответствии с ошибками ремонтировать разные элементы изучаемого объекта.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector