Blobfuse с Azure в Linux — как создать tmp-path в Azure

#linux #centos #azure-blob-storage #marklogic #mlcp

#linux #centos #azure-blob-хранилище #marklogic #mlcp

Вопрос:

Мы использовали приведенную ниже команду для монтирования Azure Blob в качестве папки на компьютере CentOS Linux

     sudo blobfuse /mnt/azureblob/ --tmp-path=/mnt/resource/blobfusetmp  
    --config-file=/home/mladmin/fuse_connection.cfg 
    -o attr_timeout=240 -o entry_timeout=240 -o nonempty #
    -o negative_timeout=120 -o allow_other
  

Файл конфигурации (fuse_connection.cfg) выглядит следующим образом

 accountName xxx
accountKey key
containerName container
  

Во время процесса MLCP мы получаем ошибку, приведенную ниже
XDMP-ПРОСТРАНСТВО СЛИЯНИЯ: не объединяется из-за ограничений дискового пространства, требуется = 4740 МБ, есть = 2739 МБ

Итак, когда мы посмотрели на это, мы обнаружили, что проблема связана с размером диска временной папки.

Мы перешли на Azure, чтобы убедиться, что нам не нужно беспокоиться о размере диска. Теперь -tmp-path является обязательным, поэтому вопрос в том, как мы можем установить -tmp-path для Azure blob?

Ответ №1:

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

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

Итак, по моему предложению, если вы не знаете, сколько места для хранения открытых файлов, вы можете убедиться, что путь tmp такой же большой, как ваш большой двоичный объект. Например, размер большого двоичного объекта составляет 5 ГБ, поэтому путь tmp также должен иметь 5 ГБ.

Комментарии:

1. Спасибо Чарльзу за ваш ответ. Да, это означает, что монтирование в качестве диска через Blobfuse здесь не окажет большой помощи, поскольку во время процесса синхронизации или перебалансировки MarkLogic может использовать тот же размер данных, например (> 200 ГБ) во время обработки в папке temp. таким образом, в конечном итоге мы не получаем большой пользы в этом случае. Кстати, я понял, что вы имеете в виду.

2. Спасибо Чарльзу за быстрый ответ. Хорошо, это было полезно, я приму. И последний вопрос :), вы имеете в виду, что такой же проблемы не будет, если я использую общий файловый ресурс вместо Azure Blob?

3. @ManishJoisar Да, файловому ресурсу не нужен путь tmp и он используется только как удаленная файловая система, которую вы можете смонтировать.