Я прочитал аналогичный вопрос, но все еще не понимаю, в какой ситуации.
Мой сайт позволяет пользователю загружать огромное количество больших изображений (сканировать страницы книги). Мой сервер автоматически выложит и сохранит эти изображения. Таким образом, каждая страница превратится в 10 тысяч маленьких плиток (каждое изображение имеет размер 128 пикселей * 128 пикселей, занимает 2k места). У меня около 100Гб изображений, и прямо сейчас они уже заполняют всю таблицу inode.
Вот пара моих мыслей и понимания, пожалуйста, поправьте меня, если я ошибаюсь.
mysql blob
положительная сторона: больше не нужно беспокоиться о структуре inode / каталогов.
обратная сторона: медленное обслуживание изображений и может замедлить работу всей базы данных
файловая система
Достоинства: более быстрое обслуживание изображений
обратная сторона: медленная скорость резервного копирования, дополнительный дизайн каталогов, нужен большой размер inode (это также означает, что мне нужно переформатировать диск моего сервера)
mongoDB BinData с base64 (я не знаком с этим, но кажется хорошим вариантом)
Amazon S3
плюс: они обо всем позаботятся
обратная сторона: нужно причинить деньги и потерять полный контроль над этими изображениями.
(ОБНОВЛЕНИЕ: я могу не разрешить использовать стороннего поставщика, но я все равно буду жить здесь, поскольку это может быть хорошим решением для других людей, согласно предложению @Niels.)
Другое Magic Отличное решение.
Поэтому мне интересно, что лучше в моей ситуации и почему. Спасибо за помощь
Насколько мне известно, нет способа изменить количество inodes в существующей файловой системе.
Если вы можете воссоздать файловую систему, вы можете использовать -N
возможность указать большее количество inodes для новой FS
Я бы определенно выбрал S3, если у вас нет тысяч очень активных пользователей ... И даже если вы делаете пожертвования или рекламируете, это должно покрывать расходы. Хранилище S3 действительно дешево по сравнению с вашим собственным сервером. Хранение 100 ГБ данных обойдется вам примерно в 9 долларов США в месяц при высоком уровне избыточности. Это означает зеркальное отображение по крайней мере в 4 местах хранения с гарантированной надежностью транзакций 99,9999% по цене, которая не позволит вам купить один сервер за 3 года. Трафик может быть дорогостоящим, но вы платите это с каждым провайдером колокации, так что никакой реальной разницы, если вы не доберетесь до больших чисел.
S3 - это внутренне оптимизированный строковый словарь, поэтому он способен хранить миллионы, если не миллиарды связанных файлов.
Честно говоря, избавьтесь от разочарования и избавьтесь от всех неприятностей с резервным копированием, резервированием и администрированием серверов за небольшую плату, а затем сосредоточьтесь на поддержании работоспособности окружающего веб-сайта. Гораздо веселее.
Кроме того, если использование полосы пропускания действительно астрономическое, рассмотрите возможность использования вашего веб-сервера в качестве «пограничного» сервера. В большинстве сценариев массового хранения 1% контента запрашивается 99% времени (например, фотографии из Facebook). Некоторые сценарии, которые будут локально отражать 1 ГБ недавно запрошенных образов и сбрасывать их к моменту последнего доступа, должны быть простыми в выполнении и, вероятно, сохранят затраты на пропускную способность S3 в пределах уровня бесплатного пользования.