В Ubuntu VM исправлена ​​проблема с файловой системой только для чтения?

9

Я собирался установить инструменты VMWare на виртуальную машину сервера Ubuntu, но столкнулся с проблемой невозможности создать каталог cdrom в каталоге / mnt. Затем я проверил, была ли это просто проблема с разрешениями, но я даже не смог создать папку в домашнем каталоге. Он продолжает утверждать, что это файловая система только для чтения. Я немного знаю о Linux, и мне пока не очень комфортно с ним. Любые советы будут высоко ценится.

Запрошенная информация из комментария:

username @ servername : ~ $ mount
/ dev / sda1 в / тип ext4 (rw, errors = remount-ro)
proc в / proc тип proc (rw)
нет в / sys тип sysfs (rw, noexec, nosuid, nodev)
нет в / sys / fs / fuse / тип соединений fusectl (rw)
нет в / sys / kernel / отладочный тип debugfs (rw)
нет в / sys / kernel / тип безопасности securityfs (rw)
udev в / dev тип tmpfs (rw, mode = 0755)
нет в / dev / pts типа devpts (rw, noexec, nosuid, gid = 5, mode = 0620)
нет в / dev / shm типа tmpfs (rw, nosuid, nodev)
нет в / var / run типа tmpfs (rw , nosuid, mode = 0755)
нет в / var / lock тип tmpfs (rw, noexec, nosuid, nodev)
нет в / lib / init / rw тип tmpfs (rw, nosuid, mode = 0755) binfmt_misc в / proc / sys / fs / binfmt_misc тип binfmt_misc (rw, noexec, nosuid, nodev)

Наверняка корневой вывод.

root@server01:~# mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

альтернативный текст

альтернативный текст

Дэвид
источник
1
Можете ли вы напечатать вывод команды "mount"? (параметры не нужны)
pgruetter
Добавил в ответ. Спасибо за просьбу о полезной информации.
Дэвид
Просто чтобы быть уверенным: «sudo mkdir / mnt / cdrom» не работает, верно?
Янне Пиккарайнен
Что меня смущает, так это то, что он говорит, что это файловая система только для чтения. Вывод команды сообщает «rw», которая является файловой системой для чтения и записи. Так что сама файловая система должна быть в порядке. В какую папку вы пытаетесь написать? Можете ли вы также дать вывод "ls -la <the_folder>"?
pgruetter
Я добавил изображение внизу, которое представляет собой изображение того, что я получаю, когда выполняю запрошенную команду. Дай мне знать, если я тебе понадоблюсь что-нибудь еще. :)
Дэвид

Ответы:

16

Хотя это относительно старый вопрос, ответ остается прежним. У вас есть виртуальная машина (работающая на физическом хосте) и какое-то хранилище (либо общее хранилище - FC SAN, хранилище iSCSI, общий ресурс NFS - или локальное хранилище).

При виртуализации многие виртуальные машины пытаются получить доступ к одним и тем же физическим ресурсам одновременно. Из-за физических ограничений (количество операций чтения / записи - IOPS; пропускная способность; задержка) может возникнуть проблема с одновременным удовлетворением всех запросов на хранение всех физических машин. Что обычно происходит: вы сможете увидеть «повторы SCSI» и неудачные операции SCSI в операционных системах ваших виртуальных машин. Если вы получаете слишком много ошибок / повторных попыток в течение определенного периода времени, ядро ​​установит подключенные файловые системы только для чтения, чтобы предотвратить повреждение файловой системы.

Короче говоря, ваша физическая память недостаточно мощная. Слишком много процессов (виртуальных машин) обращаются к системе хранения одновременно, ваши виртуальные машины не получают ответ от хранилища достаточно быстро, а файловая система становится доступной только для чтения.

Есть не так уж много вещей, которые вы можете сделать. Очевидное решение - лучше / дополнительная память. Вы также можете изменить параметры времени ожидания SCSI в ядре Linux. Подробности описаны, например, в:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009465

http://www.cyberciti.biz/tips/vmware-esx-server-scsi-timeout-for-linux-guest.html

Однако это только «отложит» ваши проблемы, потому что ядро ​​получает больше времени, прежде чем файловая система будет доступна только для чтения. (То есть вы не решаете причину проблемы.)

Мой опыт (несколько лет с VMware) заключается в том, что эта проблема существует только с ядрами Linux (мы используем RHEL и SLES), а не с серверами Windows. Также эта проблема возникает на всех типах хранилищ - FC, iSCSI, локальное хранилище. Для нас наиболее важным (и дорогим) компонентом нашей виртуальной инфраструктуры является хранилище. (Сейчас мы используем HP LeftHand с iSCSI-соединениями 1 Гбит / с, и с тех пор у нас не было проблем с хранением. Мы выбрали LeftHand (вместо традиционных FC-решений) для его масштабируемости.

Josef
источник
Вот Это Да! Отличный ответ. Я полностью забыл об этом вопросе. Я пометил ваш ответ как принятый. Центр обработки данных, с которым я в настоящее время работаю (который является крупным партнером VMWare), недавно обновил свое хранилище до Hitachi Pod. Мы фактически добавляем еще один модуль в среду, чтобы помочь загрузке IOP, потому что мы начали сталкиваться с дополнительными проблемами с IOP (предварительно подчеркнув, что нам нужно обновить или расширить ресурсы SAN). Итак, в прошедшие выходные мы снова увеличили наши ресурсы SAN.
Дэвид
4

Вероятное объяснение состоит в том, что существует аппаратная проблема (частичный сбой диска), и что ядро ​​перемонтировало корневую файловую систему как доступную только для чтения, как только она обнаружила проблему, чтобы минимизировать проблему. Более надежный способ проверки текущих параметров монтирования cat /proc/mounts( grep ' / ' /proc/mountsдля корневой файловой системы игнорируйте rootfs / …строку, которая является артефактом процесса загрузки). Вы, вероятно, обнаружите, что rw,errors=remount-roизменилось на ro(другие опции могут отображаться дополнительно).

Журналы ядра, вероятно, содержат сообщение Remounting filesystem read-only, которому предшествуют ошибки доступа к диску. Журналы, как правило, живут в /var/log/kern.log, однако, если это в файловой системе, доступной только для чтения, сообщение там не будет отображаться, хотя предыдущие ошибки должны. Вы также можете увидеть последние несколько ошибок ядра с помощью dmesgкоманды.

Кроме того, под Ubuntu, обычное место для точек монтирования (используется интерфейсом рабочего стола) находится под /media(например /media/cdrom0), хотя вы можете использовать /mntили, /mnt/cdromесли хотите.

¹ отчеты от . Если корневая файловая система доступна только для чтения, она не может быть обновлена. mount/etc/mtab/etc/mtab

Жиль "ТАК - перестань быть злым"
источник
Единственное, что касается плохого оборудования, это то, что это виртуальная машина, поэтому она не может быть аппаратной проблемой, так как на физических хостах находятся сотни виртуальных машин, а у меня единственная проблема. Я проверю логи ядра и попытаюсь поставить скриншот этого вопроса.
Дэвид
Если у вас есть ограничение на размер вашего виртуального жесткого диска, и он заполнен, Ubuntu не сможет записать, как показано выше. Вы можете проверить.
КарлФ
@ Дэвид: Журналы показывают, что Linux столкнулся с аппаратной проблемой, только аппаратное обеспечение является виртуальным. Я нахожу гипотезу КарлФ весьма правдоподобной.
Жиль "ТАК - перестань быть злым"
3

В последнее время произошел сбой питания в центре обработки данных. С тех пор я не трогал свой сервер. Когда наш центр обработки данных теряет мощность, VSphere делает файловую систему Ubuntu доступной только для чтения, пока она не будет перезапущена. Я бы попробовал перезапустить, но я не хотел, чтобы весь мониторинг сходил с ума. Я отключил Nagios (служба мониторинга), и теперь все работает нормально, когда я перезапустил систему. Спасибо за все комментарии. Это высоко ценится.

Дэвид
источник
1

Может быть, это очевидно, но вы "root" пользователь, пытаясь это сделать? / mnt принадлежит пользователю root и доступен для записи только пользователю root. Вы также можете проверить наличие ошибок при загрузке. Ваш вывод выше говорит о том, что / (и, следовательно, / mnt) следует перемонтировать только для чтения, если процесс загрузки видит ошибки. Вы можете изменить это (т.е. перемонтировать как r / w) с помощью команды mount, но я бы не стал этого делать, если вы не уверены, что причина ошибки не была серьезной.

Хотей
источник
Возможно, я не был в корне случайно, когда я сделал это, но я думаю, что вывод это то же самое. Корневой вывод наверняка находится ниже первого выхода.
Дэвид