Назад | Перейти на главную страницу

EC2 - хотите смонтировать до начала обслуживания

Я использую AWS EC2 и добавил дополнительный том EBS. В настоящее время монтируется как новое устройство.

MySQL и Redis DB хранят свои данные на новом томе EBS, и они регистрируются в chkconfig. Поэтому мне нужно, чтобы том был смонтирован ПЕРЕД chkconfig служба запускается.

Но я не хочу добавлять его в свой /etc/fstab, как сказано на форуме ниже. https://forums.aws.amazon.com/message.jspa?messageID=304528#304528

Итак, я добавил mount /dev/xvdf /data в моем /etc/rc.d/rc.local , и я перезагрузил свою систему.

Но видимо chkconfig сервисы запускаются ДО /etc/rc.d/rc.local, и поэтому запуск MySQL и Redis терпит неудачу.

Я хочу знать, где я могу написать сценарий инициализации, который называется ПЕРЕД chkconfig служба запускается.

Заранее спасибо.

Как вы могли заметить, rc.local обычно является последним скриптом, который выполняется в процессе загрузки. Об этом говорится в комментариях к сценарию.

Судя по упоминанию о chkconfig в вашем вопросе, я думаю, вы используете CentOS, Linux на базе RHEL от Amazon или другую производную от Red Hat (или Fedora). Если это так, то вы можете просто проигнорировать то, что Cindy @ AWS сказала в этой ветке.

Монтирование локальных файловых систем в RHEL выполняется сценарием /etc/rc.sysinit, который монтирует все файловые системы, не являющиеся NFS, CIFS (SMB) или какой-либо другой сетевой файловой системой. Это делается путем выполнения следующей строки в скрипте:

    action $"Mounting local filesystems: " mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev

Эта строка выполняет mount и дает указание попытаться смонтировать все устройства, которые не соответствуют ни одному из типов файловой системы nfs, nfs4, smbfs, ncpfs, cifs, gfs или gfs2. Кроме того, он игнорирует все устройства с _netdev в их параметрах в fstab.

Когда команда mount пытается смонтировать любую файловую систему, которая не существует, она не блокируется, но выдает следующее сообщение об ошибке:

# mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev`
mount: special device /dev/fhsd does not exist

В моем случае / dev / fhsd - это строка в fstab, которая выглядит так:

/ dev / fhsd / mnt ext4 по умолчанию 0 0

Как видите, этот сбой не блокирует процесс монтирования, и ОС не будет блокировать ожидание устройства, он просто выйдет из строя.

Есть еще один сценарий, который заботится о монтировании сетевых файловых систем в /etc/init.d/netfs, и он обрабатывает все файловые системы, в параметрах которых есть _netdev.

В Ubuntu есть проблема с отсутствующими устройствами, и вам нужно добавить nobootwait (также см. этот вопрос о nobootwait и nofail в Unix.SE), чтобы указать, что процесс загрузки ОС не должен завершаться ошибкой, если устройство отсутствует, но в Ubuntu монтирование выполняется с помощью mountall (1).

Вы можете указать chkconfig, какой порядок выполнять init.d скрипты через комментарий в скрипте.

Напишите сценарий init.d для монтирования / размонтирования и его выполнения перед MySQL и Redis при загрузке и после MySQL и Redis при завершении работы.