Невозможно смонтировать azure общих файловых ресурсов как том mongodb в azure экземплярах контейнера - PullRequest
2 голосов
/ 17 января 2020

Я пытаюсь настроить экземпляр базы данных mon go с использованием экземпляров контейнера azure и монтировать его на общей папке Azure.

Мы получаем следующую ошибку:

[initandlisten] WiredTiger error (1) [1579245437:724939][1:0x7f9419c67b00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1579245437:724939][1:0x7f9419c67b00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
W  STORAGE  [initandlisten] Failed to start up WiredTiger under any compatibility version.
F  STORAGE  [initandlisten] Reason: 1: Operation not permitted
F  -        [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 789
[initandlisten] 

***aborting after fassert() failure

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

az storage account create -g $resourcegroup -n $storageaccount --sku Standard_LRS

az storage share create --name $mongofileshare --account-name $storageaccount

az container create --resource-group $resourcegroup --name $containername --image mongo:latest --dns-name-label $DNSName --ports 27017 --protocol TCP --environment-variables 'MONGO_INITDB_ROOT_USERNAME=admin' 'MONGO_INITDB_ROOT_PASSWORD=*******' --location westeurope --azure-file-volume-account-name $storageaccount --azure-file-volume-account-key '**********' --azure-file-volume-share-name 'mongofileshare' --azure-file-volume-mount-path '/data/db'

1 Ответ

2 голосов
/ 17 января 2020

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

Монтирование общего ресурса файлов Azure в экземпляр контейнера аналогично подключению Docker bind. Имейте в виду, что если вы монтируете общий ресурс в каталог контейнера, в котором существуют файлы или каталоги, эти файлы или каталоги скрываются при монтировании и недоступны во время работы контейнера.

Так что это не рекомендуется смонтировать Azure File Share в существующий каталог, который содержит файлы, используемые для инициализации Mon go DB. Рекомендуемый каталог будет иметь путь /var/logs/.

...