В 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-решений) для его масштабируемости.


Вот Это Да! Отличный ответ. Я полностью забыл об этом вопросе. Я пометил ваш ответ как принятый. Центр обработки данных, с которым я в настоящее время работаю (который является крупным партнером 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, но я бы не стал этого делать, если вы не уверены, что причина ошибки не была серьезной.


Возможно, я не был в корне случайно, когда я сделал это, но я думаю, что вывод это то же самое. Корневой вывод наверняка находится ниже первого выхода.
Дэвид
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.