Это немного связано с моим предыдущим вопросом Solaris: Монтирование файловой системы на обработчиках приложения за исключением того, что этот вопрос предназначен для другой цели и является более простым, так как нет открытия / закрытия / блокировки, это просто блок байтов фиксированной длины с операциями чтения / записи.
Есть ли в любом случае, я могу создать виртуальный слайс, вроде RAM-диска или SVM-фрагмента ... но я хочу, чтобы чтение и запись проходили через мое приложение.
Я планирую использовать ZFS, чтобы взять несколько этих виртуальных срезов / дисков и превратить их в один больший для распределенного хранилища резервных копий со снимками. Мне очень нравится сжатие и укладка, которые предлагает ZFS. При необходимости я могу гарантировать, что существует только один экземпляр ZFS, обращающийся к этим виртуальным дискам одновременно (для предотвращения конфликтов кэша и тому подобного). Если один экземпляр выйдет из строя, мы можем убедиться, что он не запустится снова, а затем мы можем запустить другой экземпляр этого ZFS.
Я планирую, чтобы эти диски составляли около 4 ГБ или около того, затем я могу перемещаться по каждому чанку и решать, где их хранить (конечно же, несколько раз зеркально), а затем иметь ZFS для доступа к чанкам и собирать их вместе. в более крупные куски для фактического использования. Кроме того, ZFS разрешает добавление этих небольших фрагментов, если необходимо увеличить размер большего фрагмента.
Я знаю, что было бы дополнительное время ожидания / сетевой трафик, если бы мы использовали свое собственное приложение на Java, но это только для резервного копирования. Производственное хранилище имеет совершенно другую конфигурацию, которая не имеет отношения.
Редактировать: У нас есть система, которая использует все доступное пространство, и в основном, когда недостаточно места, она удалит старые снимки и увеличит промежутки между старыми снимками. Цель моего предложения - разрешить использование неиспользуемого пространства производственного оборудования без каких-либо дополнительных затрат. В разное время у разных узлов нашего производственного оборудования будет свободное пространство. Кроме того, система, которую я описываю, должна устранять любую точку отказа при попытке доступа к данным. Я надеюсь, что мне не придется покупать два больших устройства и синхронизировать их. Я бы предпочел просто иметь две точки доступа, и тогда мы можем смешивать большие / маленькие блоки любым удобным для нас способом и легко перемещать данные.
Это кросс-пост, потому что это больше связано с программным обеспечением, чем с системным администратором. Оригинальный вопрос здесь: https://serverfault.com/questions/212072. может быть хорошей идеей закрыть оригинал