История хранилища картинок Avito. Как на авито добавить фото к объявлению


Добавление фотографий в объявление

Добавление фотографий в объявление помогает вам увеличить объем продаж, дает покупателям более точное представление о товаре и выделяет объявление из ряда похожих. Вы можете загрузить фотографии на eBay, а также использовать фотографии с других сайтов.

Стандартные функции и дополнительные параметры

В каждое объявление можно добавить до 12 фотографий.

Первая фотография отображается в левом верхнем углу объявления и рядом с названием товара в результатах поиска. Она называется фотографией в галерее.

Остальные 11 фотографий отображаются в левом верхнем углу объявления. Мы храним копии ваших фотографий на eBay, и они остаются в завершенных объявлениях о товаре на срок до 90 дней, чтобы их можно было снова использовать при повторной публикации или продаже похожих товаров.  

Вы также можете использовать дополнительные параметры объявления в Галерее Плюс, чтобы в результатах поиска выводились более крупные фотографии.

Использование средства загрузки фотографий

Добавление фотографий в объявление
  1. В разделе Добавить фотографии нажмите кнопку Добавить/редактировать фотографии.

  2. Нажмите Выбрать фотографии из браузера файлов и найдите фотографии, которые вы хотите добавить в объявление. Чтобы выбрать несколько файлов, выделите их, удерживая клавишу CTRL (Windows) или клавишу Command (Mac).

  3. В режиме предварительного просмотра можно обрезать и поворачивать фотографии, изменять их яркость и контрастность. Для этого нажмите кнопку с соответствующей картинкой. Затем нажмите кнопку Применить.

  4. По желанию можно выбрать дополнительные параметры фотографии. Эти параметры могут быть выбраны автоматически, если они предоставляются бесплатно для вашего объявления. Когда вы будете готовы загрузить добавленные и отредактированные фотографии, нажмите кнопку Загрузить.

Что еще необходимо знать?

  • Можно добавлять фотографии размером до 7 Мб.

  • В окне загрузки можно выбрать сразу несколько фотографий.

Копирование фотографий с веб-сайта

Вы можете скопировать фотографии с веб-сайта, а не загружать их с жесткого диска. После этого ваши фотографии будут автоматически оптимизированы для использования на eBay и будут там храниться.

Добавление фотографий в объявление
  1. В разделе Добавить фотографии формы объявления о товаре нажмите кнопку Добавить/редактировать фотографии.

  2. Нажмите на ссылку Импортировать со страницы в интернете.

  3. Найдите фотографии для загрузки и введите адрес URL в поле. Нажмите ссылку Добавить еще, чтобы добавить дополнительные фотографии.

  4. Нажмите кнопку Импортировать, чтобы скопировать фотографии в объявление.

Что еще необходимо знать?

  • Вы можете добавить фотографии размером до 12 МБ.

  • Вы загружаете изображения с сервера размещения изображений, используя URL-адрес с этого сайта.

  • Стандартизированные копии фотографий сохраняются на нашем веб-сайте.

Замена фотографий

Замена изображений с помощью средства загрузки фотографий

Зайдите в Мой eBay, выберите Редактировать объявление, удалите существующую фотографию из объявления, а затем загрузите другую.

Замена изображений, добавленных с веб-сайта

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

Для замены фотографии, загруженной с веб-сайта:

  1. Выберите новую фотографию, соответствующую нашим требованиям.

  2. Загрузите выбранную фотографию на хостинг-сайт, при этом URL-адрес фотографии должен быть новым, не заменяйте существующую фотографию на новую (например, www.sample.com/OLDphoto.jpg заменить на www.sample.com/NEWphoto.jpg). 

  3. Откройте свое объявление и зайдите в секцию Добавить фотографии.

  4. Нажмите на Добавить/Редактировать фотографии и удалите фотографию, которую хотите заменить.

  5. Нажмите на Импортировать со страницы в интернете.

  6. Введите новый URL-адрес фотографии для замены.

  7. Нажмите на Импортировать, чтобы скопировать новое изображение в ваше объявление.

Для объявлений в формате Предложение активно до отмены: если вы хотите заменить изображение, которое не соотвествует нашим требованиям, обновите URL-адрес фотографии в вашем объявлении, после того как вы загрузите новое изображение на хостинг-сайт. Наша система не распознает новое фото, если вы не измените ссылку.

Рекомендуемые методы и стандарты качества

Чтобы покупатели могли хорошо рассмотреть товар, который они собираются купить, следующие правила должны быть соблюдены.

  • Старайтесь использовать фотографии размером не менее 1600 пикселей по большей стороне. Это приведет к лучшим результатам. Однако мы не рекомендуем увеличивать маленькие изображения до 1600 пикселей. Используемые фотографии должны быть размером не менее 500 пикселей по большей стороне.

  • Ниже приведены допустимые форматы фотографий

    • JPEG (расширение файла .jpg)

    • PNG (расширение файла .png)

    • TIFF (расширение файла .tif)

    • BMP (расширение файла .bmp)

    • GIF (расширение файла .gif)

  • Если ваша фотография — в формате JPEG, она должна иметь качество не ниже 90 по шкале качества JPEG от 0 до 99. Мы оптимизируем его для отображения в объявлении.

  • В объявлении должна быть хотя бы одна фотография.

  • Используйте архивные фотографии только для новых товаров. Для остальных товаров загрузите фотографию, на которой отражено их состояние.

  • Когда вы используете наш каталог, чтобы выставить подержанный товар, не используйте архивную фотографию. Загрузите фотографию товара, на которой отражено его состояние.

  • Проверьте, что все фотографии из интернета соответствуют требованиям HTTPS.

Подробная информация о требованиях к фотографиям и качеству — на странице Центра использования фотографий на eBay.

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

pages.ebay.com

Авито не загружаются фото

Если при размещении объявления на доске Авито вы столкнулись с проблемой, при которой ваши фото не загружаются на сайт, на это может быть несколько причин, о которых мы расскажем в этой статье.

 

 

Авито интернет

 

Одной из причин может быть медленное интернет соединение либо проблемы с доступом в сеть, в том числе на стороне вашего провайдера. Зачастую, при очень медленной скорости интернета, многие сайты сами по себе либо долго открываются, либо не открываются вовсе. Или открываются, спустя какое-то время, но некоторые модули сайтов не подгружаются. Уже не говоря о загрузке фото, и других файлов на сайт. Наверняка вы и сами это замечали.

 

Компьютерные новости, обзоры, решение проблем с компьютером, компьютерными играми, драйверами и устройствами и другими компьютерными программами.' title='программы, драйверы, проблемы с компьютером, играми' target='_blank'>Компьютерная помощь, драйверы, программы, игры

 

Но почему, ведь сайт открывался нормально, скажете вы!? Совершенно верно. Однако, как известно, процесс размещения объявления затрачивает некоторое время: нужно составить заголовок, написать текст, на это все уходит какое-то время. И поэтому, можно предположить, что спустя некоторое время, после того, как последний раз обновили страницу сайта, возникли проблемы в вашей сети. Даже кратковременное отключение может привести к ошибке. Например, интернет на мгновение пропал, потом появился снова. Но скрипт загрузки фото на сайте авито не сработал и, например, требует перезагрузки страницы.

 

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

 

Авито фото

 

Авито размер фото

Здесь все ясно. По правилам Авито, размер изображения не должен превышать 10 Мб. Хотя, редко можно встретить фото, с таким размером, поэтому случай с размером скорее всего не подходит. Но вот другая причина вполне имеет место быть.

 

Авито формат фото

 

Компьютерные новости, обзоры, решение проблем с компьютером, компьютерными играми, драйверами и устройствами и другими компьютерными программами.' title='программы, драйверы, проблемы с компьютером, играми' target='_blank'>Компьютерная помощь, драйверы, программы, игры

Все по тем же правилам, Авито призывает пользователей, при размещении ими объявлений, добавлять фотографии в таких форматах, как .jpg, .jpeg, .png, .gif и никакие другие. В этом случае внимательно проверьте формат фото на авито, какое расширение имеет ваше фото или ваши фото, если их несколько. Проверьте все эти значения и попытайтесь загрузить фото заново.

 

Авито браузер

 

Авито проблемы с браузером

Зачастую, при серфинге в сети Интернет, пользователи сталкиваются с различного рода ошибками, зависаниями и т.п. Дело в том, что различные интернет-ресурсы, по мере своей необходимиости, используют различные модули, скрипты, плагины и т.д. Так вот, все эти расширения и дополнения, как правило, постоянно обновляются, совершенствуются, в связи с чем, и интернет-браузеры также, обновляются, добавляют что-то новое для удобного серфинга сайтов.

 

Если ваш интернет-браузер давно не обновлялся, как вариант, попробуйте все закрыть и обновите его наконец. Быть может он уже до того устарел, что уже не понимает скрипты и приложения на различных сайтах. Поэтому иногда бывает, что некоторый контент на сайтах не открывается. Ярким примером могут быть flash приложения, для которых необходим flash player, работающий по этой технологии.

 

Если с вашим браузером вообще все плохо, воспользуйтесь другим браузером, постарайтесь не загружать слишком большие фотографии, если это уместно. Если проблема так и не решена, задайте вопрос в комментариях. Удачи!

winternete.ru

Почему не загружаются фотографии на Авито

Причины, по которым не получается загрузить фотографии на сайт Avito

   18.10.2017

Почему не загружаются фотографии на авито

Благодаря сайту Avito любой желающий пользователь может бесплатно разместить свое объявление, не выходя из дома. При работе с Авито, как и с любым другим сервисом, многие сталкиваются с различного рода проблемами, препятствующими размещению объявлений. Например, не всегда удается загрузить свои фотографии на сайт.

Причины, по которым фото не загружается на сайт

Итак, с проблемой, о которой пойдет речь в данной статье, так или иначе сталкивалось чуть ли не подавляющее большинство пользователей сайта. В таких ситуациях главное — это оперативно выяснить ее причину, а после избавиться одним из существующих способов.

Многие ошибочно считают, что виновником невозможности загрузки фото являются именно разработчики сервиса. Однако в 90%случаев трудности прослеживаются именно на стороне пользователя, поэтому в первую очередь необходимо провести анализ своей системы.

Причина 1: несоответствие требованиям сервиса

Разработчики компании Avito разместили перечень требований к изображениям, загружаемым на сайт. При нарушении хотя бы одного пункта фотография не загрузится:

  • Объем загружаемого изображения превышает максимальный размер 25 Мб;
  • Допустимые форматы изображений: GIF, PNG, JPG, JPEG;
  • Используется устаревшая версия браузера;
  • Интернет-соединение находится в нестабильном состоянии или просто слишком медленное.

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

Читайте также: Adobe Photoshop — лучшая программа для работы с фотографией

Причина 2: испорченные cookie-файлы

Куки-файлы — это структура веб-данных, которые передаются и хранятся на компьютере пользователя. При каждом повторном заходе на сайт браузер автоматически отправляет ранее сохраненные куки на сервер, после чего последний их обрабатывает. Как правило, куки используются для сохранения паролей, персональных настроек, статистики и тому подобного. Увы, проверить куки на наличие ошибок нельзя, поэтому лучше всего периодически чистить их.

Ручная чистка Cookie в браузере Google Chrome:

  1. Заходим в настройки веб-обозревателя.
  2. Окно настроек Google Chrome

  3. Далее прокручиваем окно вниз и открываем дополнительные настройки нажатием на кнопку «Дополнительно».
  4. Открываем доп. настройки в Google Chrome

  5. В разделе «Конфиденциальность и безопасность» найдите функцию «Очистить историю (Удалить файлы Cookie, историю сайтов, кэш и т.д.)».
  6. Очищаем куки в Google Chrome

  7. В появившемся окне обязательно поставьте галочку напротив «Файлы Cookie и другие данные сайтов». Остальное, в принципе, удалять не обязательно, но для профилактики не помешает.
  8. Выбираем файлы Cookie в Google Chrome

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

Подробнее: Утилита CCleaner для автоматической чистки Cookie для всех браузеров

Другие причины

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

  1. Проверьте компьютер на наличие вирусов.

    Подробнее: Как очистить компьютер от вирусов

  2. Проведите полную чистку с помощью CCleaner.
  3. Переустановите браузер. Для полного удаления браузера с компьютера рекомендуется использовать CCleaner.
  4. Попробуйте загрузить фото с того же устройства, но через другое интернет-соединение. Если получилось — обратитесь в тех. поддержку вашего провайдера.
  5. Выполните анализ системы с помощью программ ADWCleaner и Anti-Malware.
  6. Скачать программу ADWCleanerСкачать программу Anti-Malware

  7. Проверьте, может проблема все-таки на стороне Авито. Обратитесь в тех. поддержку.
  8. Переустановите операционную систему на своем компьютере.

Читайте также: Шесть способов ускорить свой компьютер

В данной статье собраны все причины и решения проблем с загрузкой изображений на сайт Avito. Поэтому, скорее всего, подавляющее большинство пользователей не дойдет даже до 2-го пункта. В том случае, если после правильного и последовательного выполнения всех пунктов проблема сохранилась, остается лишь обратиться в официальную техническую поддержку Авито и надеяться на помощь с их стороны.

Служба поддержки сайта Avito

Расскажи друзьям в социальных сетях

compdude.ru

выбрать фото и написать текст

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

Дарья Кулинич

юрист

Как фотографировать

«Авито» позволяет размещать 10 фотографий одного лота, используйте эту возможность. Несколько фотографии лучше одной, потому что дают более полное представление о товаре и задерживают покупателя на странице.

Иллюстрацию к объявлению можно получить двумя способами:

  • сфотографировать самому;
  • использовать изображение из интернета.

Второй вариант я не рекомендую. Профессиональное фото на белом фоне создает у потенциального покупателя впечатление, что вы коммерческая организация, которая продает новые товары. Еще он может подумать, что вы используете чужую фотографию, потому что ваш товар в ужасном состоянии. В обоих случаях покупатель, скорее всего, пройдет мимо вашего объявления.

Откройте нужный раздел объявлений в вашем городе и посмотрите, какие фотографии размещают конкуренты. Чаще всего это будут грязные вещи в тусклом свете на пестром фоне. Вам надо будет сделать всё наоборот:

  1. Товар отмойте, достаньте из щелей пыль и грязь. Если это устройство с проводом — протрите провод. Обувь протрите и начистите.
  2. Найдите время утром или в середине дня, когда в окнах больше всего света. Старайтесь не фотографировать под искусственным светом.

Есть мнение, что дешевый товар не нужно фотографировать красиво, подойдет и «фотография из подвала» — грязный объект не в фокусе. Возможно, это справедливо для очень дешевых предметов. Но при прочих равных покупатель вряд ли захочет за свои деньги отмывать ваш товар.

Компьютерная мышь со второй фотографии была в таком же состоянии, как мышь с фотографии конкурента. Я легко отмыла эту мышь с помощью зубочисток и меламиновой губки.

Всё, что нужно для съемки, — это нейтральный фон и естественный свет от окна без прямых солнечных лучей. Я организовала фотостудию на балконе:

Во время съемки делайте пробные кадры и просматривайте их. Это поможет заметить и исправить недостатки до того, как вы свернете съемку.

На пробном фото видно, что нужно максимально отодвинуть диван от стола, изменить ракурс съемки и расправить складки обивки.

Технику лучше фотографировать включенной, чтобы сразу снять вопросы по ее работоспособности.

Если вещь к чему-нибудь подключается, в кадр должны попасть шнуры и разъемы. Если к лоту в нагрузку есть аксессуары, чехол, руководство пользователя, сделайте фото комплекта.

Перед съемкой выделите для себя основные достоинства объекта: они и должны быть видны на фото. Если это фарфоровая посуда, то не забудьте о клейме завода-изготовителя. Если книга — не игнорируйте оглавление. Если обувь — нестоптанные набойки должны фигурировать в кадре.

Что писать в объявлении

Количество символов в заголовке ограничено, не растрачивайте их на очевидное «Продаю». «Авито» тоже накладывает определенные ограничения на заголовок — нельзя использовать слова «дешево», «недорого», указывать цену и контактные данные.

«Авито»: Как избежать мошенников

Сообщите в заголовке максимум хорошего. Если вещь новая или в идеальном состоянии, напишите об этом. Точное наименование модели можно указать в тексте объявления. Если вещь имеет какие-то преимущества, смело выносите это в заголовок. Иногда существенное значение для позиционирования товара имеет производитель. Если товар продается с аксессуарами и инструкцией, напишите в заголовке «в полной комплектации» или «в максимальной комплектации».

НетДа
Домашний кинотеатр / цифровая акустическая система Samsung HT-P70KДомашний кинотеатр Samsung в идеальном состоянии
МокасиныЗамшевые мокасины
ЦветыЦветы в горшках с самополивом
Надувной матрасКорейский надувной матрас
АнтирадарЯпонский радар-детектор
Фотоаппарат OlympusФотоаппарат Olympus в полной комплектации

Нет

Домашний кинотеатр / цифровая акустическая система Samsung HT-P70K

Да

Домашний кинотеатр Samsung в идеальном состоянии

Да

Замшевые мокасины

Да

Цветы в горшках с самополивом

Нет

Надувной матрас

Да

Корейский надувной матрас

Да

Японский радар-детектор

Нет

Фотоаппарат Olympus

Да

Фотоаппарат Olympus в полной комплектации

Иногда кажется, что о продаваемой вещи и написать нечего. Но очевидные для вас свойства товара не всегда очевидны для покупателя. Внимательнее рассмотрите товар, который продаете. В объявлении опишите не только его свойства, но и выгоду, которую они дают. Опишите ситуации, когда товар полезен. Если предмет удобен в эксплуатации или выручает в каких-то определенных ситуациях — опишите это удобство и ситуации.

НетДа
Двуспальный диван, раскладывается, зеленый, четыре подушки, состояние нормальноеДиван двуспальный в отличном состоянии. Цвет фисташковый, каркас из сосны, 4 подушки (чехлы на молнии, можно стирать). Химчистки не требует, практичная ткань, состояние на 5, все механизмы исправны. Раскладывается с помощью механизма «дельфин». Ящик для белья переставляется на правую и на левую стороны — подойдет для любой комнаты. Размер спального места — 135×200. Для транспортировки можно частично разобрать, войдет в лифт
Фонарь светодиодный с двумя режимами фокусировки. Корпус — сталь, силиконМощный светодиодный фонарь для туриста. Корпус — сталь, силикон. Водонепроницаемый, не боится дождя и попадания в воду. Есть режим луча и режим рассеивания. Лучом — светить вдаль, рассеиванием — освещать комнату. Не боится ударов. Заряда батареи хватает на 80 часов. Идеально для походов или как фонарь для дома на случай отключения света

Нет

Двуспальный диван, раскладывается, зеленый, четыре подушки, состояние нормальное

Да

Диван двуспальный в отличном состоянии. Цвет фисташковый, каркас из сосны, 4 подушки (чехлы на молнии, можно стирать). Химчистки не требует, практичная ткань, состояние на 5, все механизмы исправны. Раскладывается с помощью механизма «дельфин». Ящик для белья переставляется на правую и на левую стороны — подойдет для любой комнаты. Размер спального места — 135×200. Для транспортировки можно частично разобрать, войдет в лифт

Нет

Фонарь светодиодный с двумя режимами фокусировки. Корпус — сталь, силикон

Да

Мощный светодиодный фонарь для туриста. Корпус — сталь, силикон. Водонепроницаемый, не боится дождя и попадания в воду. Есть режим луча и режим рассеивания. Лучом — светить вдаль, рассеиванием — освещать комнату. Не боится ударов. Заряда батареи хватает на 80 часов. Идеально для походов или как фонарь для дома на случай отключения света

Не пренебрегайте сложными названиями цветов.

Нет

Бежевое платье

Да

Вечернее платье цвета слоновой кости

Нет

Белый тюль

Да

Белоснежный тюль

Да

Пальто из мягкой мериносовой шерсти

Описывать дефекты нужно аккуратно, чтобы не отпугнуть покупателя с живым воображением. Можно использовать оценку в баллах (5−) или описывать состояние словами («в хорошем состоянии»). Про неработающие телефоны можно написать в заголовке «на органы».

В следующей статье поговорим о том, как торговаться с покупателем без ущерба для себя.

Запомнить

  1. Отмойте товар.
  2. Снимайте при естественном освещении, делайте пробные кадры.
  3. Определите достоинства товара, которые войдут в кадр.
  4. Указывайте максимум полезной информации в заголовке.
  5. Подробно описывайте положительные свойства товара.
  6. Для дефектов используйте цифровую шкалу.

journal.tinkoff.ru

История хранилища картинок Avito / Блог компании Авито / Хабр

А что, если вам дадут задачу организовать хранение и раздачу статических файлов? Наверняка многие подумают, что тут все просто. А если таких файлов миллиард, несколько сотен терабайт и запросов к ним несколько миллиардов в сутки? Также много разных систем будут отправлять на хранение файлы разных форматов и размеров. Этот квест уже не кажется таким простым. Под катом история о том, как мы решили такую задачу, какие сложности при этом возникли, и как мы их преодолели.

Avito развивался стремительно с первых дней. Например, скорость загрузки новых картинок для объявлений выросла в первые годы в несколько раз. Это требовало от нас на начальном этапе решать вопросы, связанные с архитектурой, максимально оперативно и эффективно, в условиях ограниченных ресурсов. Кроме того, мы всегда отдавали предпочтение простым решениям, требующим мало ресурсов на поддержку. Принцип KISS («Keep it short and simple») — это до сих пор одна из ценностей нашей компании.

Первые решения

Вопрос, как хранить и как отдавать картинки объявлений, возник сразу, так как возможность добавить фото к объявлению, безусловно, является ключевой для пользователей — покупатели хотят видеть то, что они покупают.

В то время Avito умещался менее чем на 10 серверах. Первым и самым быстрым решением было хранение файлов картинок в дереве каталогов на одном сервере и синхронизация по крону на резервный.

Путь до файла определялся исходя из уникального цифрового идентификатора картинок. Поначалу было два уровня вложенности по 100 директорий на каждом.

Со временем место на сервере стало подходить к концу, и с этим нужно было что-то делать. На этот раз мы выбрали использование сетевого хранилища, примонтированного на несколько серверов. Сетевое хранилище нам до этого в тестовом режиме предоставлял сам дата-центр, как услугу, и по нашим тестам-замерам на тот момент оно работало удовлетворительно. Но с ростом нагрузки оно стало тормозить. Оптимизация хранилища силами дата-центра не помогала кардинально и не всегда была оперативной. Наши возможности повлиять на то, как оптимизируют хранилище, были ограничены и мы не могли быть уверены, что возможности таких оптимизаций рано или поздно не исчерпаются. Парк серверов к тому времени у нас заметно увеличился и стал исчисляться десятками. Была предпринята попытка быстро поднять распределенный glusterfs. Однако он работал удовлетворительно только под небольшой нагрузкой. Как только выводили на полную мощность, кластер «разваливался», либо все запросы к нему «зависали». Попытки подстроить его не увенчались успехом

Мы поняли, что нам нужно что-то другое. Были определены требования к новой системе хранения:

  • максимально простая
  • построенная из простых и проверенных компонентов
  • не отнимающая много ресурсов на поддержку
  • максимально возможный и простой контроль за тем, что происходит
  • хороший потенциал для масштабирования
  • очень быстрые сроки реализации и миграции с текущего решения
  • допустима недоступность части картинок на время ремонта сервера (серверы нам чинили более-менее оперативно)
  • допускается потеря небольшой части картинок в случае полного уничтожения одного из серверов. Надо сказать, что за все время существования Avito такого ни разу не было. 3*Тьфу.

Новая схема

На изображении для упрощения показаны только четыре ноды на двух серверах.

В ходе обсуждения пришли к такой схеме. Файлы будут храниться в таком же дереве каталогов, но каталоги верхнего уровня распределены по группе серверов. Нужно сказать, что к тому времени у нас скопились сервера с одинаковой дисковой конфигурацией, диски на которых «простаивали». Отдаются файлы все тем же nginx. На каждом сервере подняты IP, которые соответствуют определенной директории верхнего уровня, находящейся на сервере. На тот момент мы не задумывались о балансировке трафика, так как за нас это делал дата-центр. Логика балансировки была в том, что в зависимости от домена, на который пришел запрос (всего было 100 доменов) отправлять запрос на внутренний IP, который уже был на нужном сервере.

Возник вопрос, как же код сайта будет загружать картинки в хранилище, если оно к тому же распределено по разным серверам. Логично было использовать тот же http протокол, по которому файл и пришел к нам от пользователя. Начали искать, что мы можем использовать в качестве сервиса, который будет принимать файлы на стороне сервера, который хранит файлы. Взор упал на открытый модуль nginx для аплоада файла. Однако, в ходе его изучения выяснилось, что логика его работы не укладывается в нашу схему. Но ведь это open source, а у нас есть опыт программирования на С. В течение недолгого времени, в перерывах между другими задачами, модуль был доработан и теперь, работая в составе nginx, принимал файлы и сохранял их в нужную директорию. Забегая вперед, скажу, что в процессе работы в production выявилась утечка памяти, которую на первых порах лечили перезапуском по ночам, а после, когда было время, нашли причину и исправили.

Нагрузки растут

Со временем мы стали использовать это хранилище не только для картинок, но и для других статических файлов, гибко настраивая с помощью nginx параметры, влияющие на производительность и доступ к файлам. По мере роста количества запросов и объема данных мы сталкивались (а иногда и предвидели заранее) с рядом проблем, которые в условиях высоких нагрузок требовали принятия быстрых и эффективных решений.

Одной из таких проблем стала балансировка, которую нам предоставлял дата-центр, на F5 Viprion load balancer. Мы решили убрать его из пути обработки трафика с помощью выделения 100 внешних IP (по одному на каждую ноду). Так мы убрали узкое место, ускорили доставку данных и повысили надежность.

Количество файлов в одной директории все возрастало, что влекло за собой замедление компонентов из-за увеличившегося времени чтения содержимого директорий. В ответ мы добавили еще один уровень из 100 директорий. Мы получили 100^3 = 1M директорий на каждую ноду хранения и возросшую общую скорость работы.

Мы очень много экспериментировали с оптимальной настройкой nginx и параметров дискового кэша. По той картине, что мы наблюдали, у нас было впечатление, что дисковый кэш не дает полной отдачи от кеширования, а кеширование с nginx в tmpfs работает лучше, но очистка его кэша заметно нагружает систему в пиковые часы. Первым делом мы включили логирование запросов nginx в файл и написали свой демон, который поздно вечером считывал этот файл, очищал его, выявлял наиболее актуальные файлы, и очищал из кэша остальные. Таким образом мы ограничили очистку кэша ночным периодом, когда нагрузка на систему не велика. Это работало вполне успешно какой-то период, до определенного уровня нагрузки. Построение статистики и очистка кэша перестали укладываться в ночной интервал, к тому же было видно, что место на дисках в скором будущем подойдет к концу.

Решили организовать второй уровень хранения данных, аналогичный первому, но с некоторым отличиями:

  • раз в 50 больше размер дисковой подсистемы на каждом сервере; при этом скорость дисков может быть меньше.
  • на порядок меньшее количество серверов
  • внешний доступ к файлам возможен только посредством проксирования через первый уровень
Это дало нам возможности:
  • более гибко настраивать параметры кэширования
  • использовать более дешевое оборудование для хранения основной части данных
  • еще проще масштабировать систему в будущем
Однако это потребовало некоторого усложнения конфигурации системы и кода по загрузке новых файлов в систему хранения.

На схеме ниже показано, как могут размещаться две ноды хранилища (00 и 01) на двух уровнях хранения, используя один сервер на первом уровне и один на втором. Понятно, что можно размещать разное количество нод на сервере, и кол-во серверов на каждом уровне хранения может быть от одного до ста. Все ноды и серверы на схеме не показаны для упрощения.

На изображении для упрощения показаны только две ноды на двух серверах

Вывод

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

Минусы тоже есть. Например, отсутствие репликации данных, полной защищенности от отказа оборудования. И хотя первоначально, при проектировании системы, это было сразу определено и согласовано в соответствии с оценкой рисков, мы имеем набор дополнительных средств, которые позволяют нивелировать эти минусы (система бэкапов, скрипты для тестирования, восстановления, синхронизации, перемещения и т.п.)

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

Я сознательно не углублялся в детали реализации, логики работы (о кое-чем совсем не сказано), нюансы настройки, чтобы не затягивать статью и донести главную мысль: если хотите построить хорошую крепкую систему, то одним из правильных путей может быть использование открытых проверенных продуктов, связанных в относительно простую и надежную схему. Нормально делай, нормально будет!

habr.com