Виртуальная файловая система, действующая как клон + отличие главной файловой системы

В моей компании около 10 разработчиков используют один и тот же сервер Ubuntu Dev. У нас есть отдельные каталоги кода, но из-за размера нашей базы данных (около 50 ГБ) клонировать базу данных mysql для каждого разработчика нецелесообразно. Так что сейчас мы все разделяем одну базу данных. Однако мне было интересно, возможно ли это:

Создать главную файловую систему (ext4), в которой хранится база данных объемом 50 ГБ. Эта файловая система не будет иметь запущенного сервера MySQL и будет на практике доступна только для чтения. Создайте виртуальную файловую систему для каждого разработчика, которая ссылается на главную файловую систему и сохраняет в ней различия каждого изменения. Иметь сервер mysql, работающий на каждой виртуальной файловой системе. Затем каждый разработчик заставляет свою собственную базу данных делать все, что он хочет, без необходимости дублировать базу данных объемом 50 ГБ.

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

В частности, это мои вопросы:

  • Возможна ли эта архитектура?
  • Это самый простой способ для достижения моей цели?
  • Такой виртуальный файловая система уже существует?
1
задан 9 June 2014 в 20:46

1 ответ

Для ответа на вопросы (в следующий раз пронумеруйте их так, легче относиться к ним):

  • Должен быть возможен
  • , НЕ походит на самый легкий путь
  • Да, такой виртуальный FS действительно существует.

Ваша идея походит на хороший вариант использования для overlayfs. Можно использовать существующую базу данных FS в качестве "более низкой" файловой системы и "различного" FS на разработчика как "верхняя" файловая система. Overlayfs позволяет использовать каталоги в качестве "верхних" и "ниже", таким образом, Вы не должны обязательно монтировать базы данных в различных каталогах.

Затем необходимо было бы настроить каждый экземпляр MySQL на разработчика для использования различного datadir.

Безусловно самый легкий путь состоит в том, чтобы стиснуть зубы, оборудовать Ваш сервер жестким диском мнения 1 ТБ, клонировать базу данных однако много раз, Вы нуждаетесь для каждого разработчика, и или выполняете экземпляр MySQL для каждого разработчика или имеете один экземпляр, управляют всеми базами данных. Различие для разработчиков здесь указывает другой порт по сравнению с другим именем базы данных. По моему скромному мнению, было бы более просто просто иметь один экземпляр MySQL, поскольку это означает меньше подвижных частей.

фактор для рассмотрения вот - то, сколько времени он возьмет Вас для разработки overlayfs решения по сравнению с тем, какого количества жесткий диск на 1 ТБ стоит за конкретное серверное оборудование. Ваше время имеет стоимость; если Вы смотрите на 3 дня работы над (говорят), что 50$ в час (являющийся ОЧЕНЬ консервативным здесь) за в общей сложности 1 200$, и решение для жесткого диска подразумевают 2 часа работы плюс, возможно, ночная синхронизация базы данных, которая Вы можете "выпустил-забыл", то у Вас был бы бюджет в размере 1 100$ для жесткого диска на 1 ТБ. Плюс обслуживание для большого дискового решения легче, так как нет никаких "взломов" или включенного обмана; это - просто сервер БД с огромным жестким диском.

, Конечно, если Ваши жизни сервера Ubuntu в облаке где-нибудь, стоимость той части устройства хранения данных на 1 ТБ может быть выше. Однако, полагайте, что анализ рентабельности принимает Ваше решение; можно закончить тем, что экономили деньги и время в конечном счете :)

1
ответ дан 9 June 2014 в 20:46

Другие вопросы по тегам:

Похожие вопросы: