Автоматический монтаж EFS на экземпляре EC2

Я создал экземпляр EC2 и EFS и смог правильно смонтировать EFS на этом экземпляре.

Мне нужно автоматическое монтирование в случае перезагрузки сервера.

Согласно документации, я делаю это следующим образом /etc/fstab

fs-xxxxxxxx:/ /mnt/efs efs defaults,_netdev 0 0

Использование идентификатора файловой системы EFS вместо xxxxxxxx

Но когда я перезагружаю сервер, EFS не подключается, и я сохраняю, чтобы перемонтировать его снова

Что я должен делать? или я что-то упустил

2 ответа

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

Существует два метода монтирования Amazon EFS: "Помощник монтирования Amazon EFS" (amazon-efs-utils) и "Клиент NFS" (nfs-utils).

В приведенных ниже примерах показано, как монтировать вручную и автоматически с помощью каждого метода. Перед использованием замените текст [значение] своими собственными значениями.

===============

Чтобы смонтировать с помощью "Помощника монтирования Amazon EFS" вручную, введите команду в следующем формате:

sudo mount -t efs [fs-XXXXXXXX]:/ /path/to/mount/dir

=====

Для автоматического монтирования с помощью "Помощника монтирования Amazon EFS" вставьте следующую строку в /etc/fstab

[fs-XXXXXXXX]:/ /path/to/mount/dir efs defaults,_netdev 0 0

=====

Чтобы смонтировать с помощью "клиента NFS" вручную, введите команду в любом из следующих форматов:

Используйте команду, указанную в "Инструкции по монтированию Amazon EC2 (из локального VPC)", когда вы щелкаете, чтобы просмотреть соответствующий идентификатор эластичной файловой системы в веб-консоли EFS.

sudo mount -t nfs4 -o nfsvers=4.1,rsize=XXXXXXX,wsize=XXXXXXX,hard,timeo=XXX,retrans=X,noresvport [fs-XXXXXXXX].efs.[REGION].amazonaws.com:/ /path/to/mount/dir

ИЛИ

sudo mount -t nfs4 -o defaults,_netdev [fs-XXXXXXXX].efs.[REGION].amazonaws.com:/ /path/to/mount/dir

=====

Для автоматического монтирования с "клиентом NFS" вставьте следующую строку в /etc/fstab

[fs-XXXXXXXX].efs.[REGION].amazonaws.com:/ /path/to/mount/dir nfs4 defaults,_netdev 0 0

===============

Заметили ли вы свою проблему с учетом приведенного выше примера формата?

Вы думали, что у вас установлен "Помощник монтирования Amazon EFS", но, судя по формату команды ручного монтирования, который вы указали в своем первом ответе на комментарий (а не в открытии сообщения), на самом деле в вашей системе установлен только "клиент NFS". Вы использовали формат "Помощник монтирования Amazon EFS" внутри /etc/fstab для автоматического монтирования, но команда ручного монтирования, которая сработала для вас, находится в формате "NFS client". Поскольку в вашей системе не установлен "Помощник по монтированию Amazon EFS", он не поддерживает формат автоматического монтирования в /etc/fstab, поэтому автоматическое монтирование не работает для вас.

Команда ручного монтирования, которую вы опубликовали выше, сработала только для "клиента NFS", а не для "помощника монтирования Amazon EFS".

смонтировать -t nfs4 -o nfsvers=4.1 ...

Обратите внимание, что параметр -t выше nfs4, который является форматом для "клиента NFS". Если вы использовали "Помощник монтирования Amazon EFS", параметр -t должен бытьefs.

Чтобы решить эту проблему, вы можете использовать либо помощник монтирования Amazon EFS (amazon-efs-utils), либо клиент NFS (nfs-utils), но формат команды (в CLI или /etc/fstab) и используемый клиент монтирования должны быть последовательный.

Другими словами:

"Помощник по монтированию Amazon EFS" <=> efs как в CLI, так и в /etc/fstab

"Клиент NFS" <=> nfs4 как в CLI, так и в /etc/fstab

===============

Инструкции по установке для монтирования клиентского ПО:

=====

Если вы хотите использовать "Помощник монтирования Amazon EFS", используйте следующие инструкции по установке для Amazon Linux и других дистрибутивов:

https://docs.aws.amazon.com/efs/latest/ug/using-amazon-efs-utils.html

=====

Если вы хотите использовать "NFS-клиент", используйте следующие инструкции по установке на вашем экземпляре EC2:

В экземпляре Red Hat Enterprise Linux или SUSE Linux, включая Amazon Linux, используйте эту команду:

sudo yum install -y nfs-utils

В экземпляре Ubuntu используйте эту команду:

sudo apt-get install nfs-common

=====

После установки клиентского программного обеспечения монтирования используйте соответствующие инструкции по установке, опубликованные выше.

Чтобы решить эту проблему с помощью NFS4, следуйте приведенным ниже инструкциям:

В своей учетной записи AWS обратите внимание на следующее:

1) Перейдите на экран управления EFS, вы должны указать свой EFS_WHATEVER... и рядом с ним есть маленький треугольник, щелкните вниз, чтобы развернуть.

2) Обратите внимание, что прямо посередине экрана есть "DNS-имя", оно будет выглядеть примерно так: "fs-1234567c.efs.us-west-1.amazonaws.com", обратите внимание, что внизу это ваш монтаж точка, которую мы будем использовать позже.

3) По умолчанию, если вы только что создали новый экземпляр, вы должны разрешить его доступ к вашим серверам, попытка подключения будет зависать, поскольку брандмауэр блокирует ваше соединение. чтобы прокручивать вниз, пока вы не увидите свою группу безопасности, это что-то вроде sg-abcdef

4) Зайдите на свои серверы EC2, выберите сервер, с которого вы хотите, чтобы он имел доступ к вашей EFS, а затем нажмите на его "группы безопасности", он должен привести вас на экран управления группами безопасности, запишите его идентификатор группы безопасности (это что-то SG-12345)

4) Теперь снимите фильтр на экране управления VPC, чтобы увидеть все SG...

5) Введите свою группу безопасности EFS (например, sg-abcdef) и нажмите кнопку поиска, это должно вызвать EFS ACL.

6) Щелкните "Правила для входящих подключений" -> ИЗМЕНИТЬ..

7) Нажмите "ДОБАВИТЬ" и выберите "EFS" из списка, введите SG вашего сервера (например, sg-12345) и опишите его как "Доступ к серверу XXX", если хотите.

8) Теперь сервер должен видеть EFS Mount,

9) Зайдите на свой сервер и установите необходимые компоненты, запустив ROOT:

apt-get install nfs-common

10) Теперь, чтобы протестировать MOUNT, создайте новый каталог... что-то вроде: mkdir /mnt / heider

11) Установите FS с помощью следующей команды:

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-1234567c.efs.us-west-1.amazonaws.com:/ /mnt / heider

Обратите внимание, что ваш fs-12345c..... взят из вашего DNS-имени, как указано выше.

12) Если эта работа отлично работает, переходите к следующему шагу, в противном случае исправьте приведенное выше, чтобы увидеть, не пропустили ли вы что-нибудь.

13) Теперь, чтобы смонтировать это автоматически, вам необходимо:

14) Отредактируйте / etc / fstab

15) Добавьте следующее:

fs-1234567c.efs.us-west-1.amazonaws.com:/ / mnt / heider nfs4 по умолчанию, _netdev 0 0

16) Сохраните файл и выйдите

17) в командной оболочке Linux введите: mount -a

это проверит монтаж, если он смонтирован, то отлично, перезагрузка смонтирует его автоматически.

18) Это должно быть смонтировано автоматически.

19) Перезагрузитесь для тестирования, все должно быть там.

Надеюсь, это поможет.

Чтобы использовать тип файловой системы efs, я считаю, что вам нужно установить пакет amazon-efs-utils. Это установит дополнительные зависимости.

Тот, кто имеет эту проблему,

вместо

fs-xxxxxxxx:/ /mnt/efs efs defaults,_netdev 0 0

использование

{target_ip}:/ /mnt/efs nfs4 defaults,_netdev 0 0

Это прекрасно работает для меня, и он автоматически монтируется на вновь созданные экземпляры

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