Настройка mongoDB для работы с диском NTFS

У меня 120-Гбайт накопитель SSD с двумя разделами (NTFS с Windows и ext4 с Ubintu) и 2TB NTFS HDD, разделяемый между Windows и Ubuntu.

Я настроил жесткий диск для правильной установки при загрузке системы:

# /etc/fstab: static file system information.
UUID=B400515500512022 /media/B400515500512022 ntfs-3g auto,users,uid=1000,gid=1001,fmask=113,dmask=002,utf8 0 0

Я также создал специальную группу (gid=1001) для обработки разрешений и добавил пользователя mongodb к ней:

ntfsdrive:x:1001:leonid,mongodb

Итак, теперь ntfsdrive группа имеет правильные разрешения (rw для файлов и rwx для каталогов) для всего диска, включая папку mongodb:

drwxrwxr-x 1 leonid ntfsdrive       4096 Feb  6 12:51 mongodb

Но mongodb по-прежнему отказывается запускать на этом диске:

Wed Feb  6 12:51:31 [initandlisten] MongoDB starting : pid=7480 port=27017 dbpath=/media/B400515500512022/mongodb 64-bit host=ubuntu
Wed Feb  6 12:51:31 [initandlisten] db version v2.2.3, pdfile version 4.5
Wed Feb  6 12:51:31 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Wed Feb  6 12:51:31 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Wed Feb  6 12:51:31 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/media/B400515500512022/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Wed Feb  6 12:51:31 [initandlisten] journal dir=/media/B400515500512022/mongodb/journal
Wed Feb  6 12:51:31 [initandlisten] recover : no journal files present, no recovery needed
Wed Feb  6 12:51:31 [initandlisten] info preallocateIsFaster couldn't run due to: couldn't open file /media/B400515500512022/mongodb/journal/tempLatencyTest for writing errno:1 Operation not permitted; returning false
Wed Feb  6 12:51:31 [initandlisten] exception in initAndListen: 13516 couldn't open file /media/B400515500512022/mongodb/journal/j._0 for writing errno:1 Operation not permitted, terminating
Wed Feb  6 12:51:31 dbexit: 
Wed Feb  6 12:51:31 [initandlisten] shutdown: going to close listening sockets...
Wed Feb  6 12:51:31 [initandlisten] shutdown: going to flush diaglog...
Wed Feb  6 12:51:31 [initandlisten] shutdown: going to close sockets...
Wed Feb  6 12:51:31 [initandlisten] shutdown: waiting for fs preallocator...
Wed Feb  6 12:51:31 [initandlisten] shutdown: lock for final commit...
Wed Feb  6 12:51:31 [initandlisten] shutdown: final commit...
Wed Feb  6 12:51:31 [initandlisten] shutdown: closing all files...
Wed Feb  6 12:51:31 [initandlisten] closeAllFiles() finished
Wed Feb  6 12:51:31 [initandlisten] journalCleanup...
Wed Feb  6 12:51:31 [initandlisten] removeJournalFiles
Wed Feb  6 12:51:31 [initandlisten] shutdown: removing fs lock...
Wed Feb  6 12:51:31 dbexit: really exiting now

У меня нет проблем с запуском mongodb с той же конфигурацией (включая разрешения папки mongodb) на моем диске ext4.

Есть ли способ решить эту проблему или мой единственный опция состоит в том, чтобы добавить ext4 раздел на мой жесткий диск?

1
задан 12 February 2013 в 15:02

1 ответ

В качестве временного решения я переконфигурировал скрипт mongodb upstart. Я настроил его для запуска mongodb с использованием моего собственного пользователя вместо пользователя mongodb.

Для этого я изменил следующую строку в файле /etc/init/mongodb.conf:

if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --exec  /usr/bin/mongod -- --config /etc/mongodb.conf; fi

] Обе опции --chuid mongodb:ntfsdrive и --chuid leonid привели к той же ошибке, поэтому я полностью удалил из нее параметр --chuid:

if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --exec  /usr/bin/mongod -- --config /etc/mongodb.conf; fi

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

0
ответ дан 25 May 2018 в 01:44

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

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