Было бы полезно объяснить, как пользователь может определить, какой диск, отображаемый в результате выполнения команды dmesg | grep SCSI
представляет интерес.
«Здесь sdc - это тот диск, который нам нужен» бесполезен.
Я узнал, прочитав https://chrismckee.co.uk/creating-mounting-new-drives-in-ubuntu-azure/, где была показана команда sudo lshw -C disk
, откуда я идентифицировал диск, глядя на его размер и запись информации о шине, из которой я могу соотнести его с результатами dmesg | grep SCSI
. Я уверен, что у тебя есть лучший способ сделать это.
Также было бы хорошо объяснить, почему мы используем SCSI в команде - обратите внимание, что это всегда так, если они просто подключили диск с данными к виртуальной машине на портале Azure.
⚠ Не редактируйте этот раздел.
Спасибо за ответ! Я поручил автору содержания решить эту проблему, чтобы он продолжил расследование и при необходимости обновил документ.
Привет, Ян.
Это в значительной степени вещь Linux.
В Azure диск ОС - «sda», а «sdb» - это временный диск, зарезервированный для Azure (например, диск D: \ на сервере Windows).
"sdc" - единственная доступная опция, потому что это единственная оставшаяся опция. Но немного поясняю вам название этого диска:
Я знаю, что это не лучший ответ, но надеюсь, что он вам поможет.
Спасибо @ marcelo-salvatori, это полезно, но я думаю, что было бы хорошо учесть новичков Linux в самом документе. Из одного только этого документа не ясно, что диск ОС и временный диск являются sda и sdb соответственно (можно добавить ссылку, где это объясняется). Кроме того, что, если диски с данными уже подключены или если пользователь подключил более одного на портале перед входом в виртуальную машину - как тогда определить один конкретный?
Твоя забота - реальная вещь @ yangsiyu007. Я тоже немного запутался в этой статье.
Дополнительные советы по идентификации дисков:
Честно говоря, в Azure у нас, похоже, есть проблема, заключающаяся в том, что весь диск идентифицируется виртуальными машинами как жесткие диски. Я видел такое поведение как в Windows, так и в Linux Server.
Что касается Windows, это можно изменить с помощью команды «Set-PhysicalDisk». Я не нашел способа сделать то же самое в Linux. Возможно, с помощью PowerShell в Linux вы сможете это сделать, но я сам не пробовал.
Следовательно, способ его идентифицировать был бы юрским. Вы должны добавлять по одному диску и идентифицировать его, добавлять другой и идентифицировать его и так далее. Я знаю, это отстой. Но это единственная работа, которую я нашел. Я надеюсь, что Azure скоро это исправит.
Использованная литература:
https://docs.microsoft.com/en-us/azure/virtual-machines/linux/about-disks-and-vhds# Contemporary -disk
https://unix.stackexchange.com/questions/65595/how-to-know-if-a-disk-is-an-ssd-or-an-hdd
cat /sys/block/[DRIVE]/queue/rotational
или lsblk -d -o name,rota
не работают в Azure. В нем указано 1 для sda / sdb / sdc, хотя sda - это SSD премиум-класса, sdb - это временный SSD, а sdc - стандартный жесткий диск.
Также fdisk -l
ничего не возвращает.
Тестирование на Ubuntu.
Не всегда можно гарантировать, что sda и sdb будут ОС и временным диском соответственно. Лучший способ идентифицировать конкретный диск с данными - через LUN. Фактически вы можете указать LUN при подключении диска через CLI / Powershell, или по умолчанию нумерация будет начинаться с 0 и увеличиваться на 1 для каждого вновь подключенного диска.
Во многих стандартных образах Linux в Azure есть правило udev, которое создает дружественные / постоянные символические ссылки для каждого диска, поэтому вам не нужно беспокоиться о sda / sdb / etc. именование. После подключения диска с данными вы должны увидеть новую символическую ссылку, созданную в / dev / disk / azure / scsi1 / *, которая идентифицирует каждый диск (и его разделы) по LUN.
Смотрите также:
https://docs.microsoft.com/en-us/azure/virtual-machines/troubleshooting/troubleshoot-device-names-problems
Спасибо всем за обсуждение этого вопроса. Мы продолжаем внутреннее обсуждение этого вопроса и в настоящее время не планируем обновлять документ какими-либо дополнительными действиями. @szarkos последний ответ точен и хороший комментарий, который стоит завершить. Эта проблема останется в документе, и если другие пользователи продолжат комментировать ее, мы всегда сможем возобновить обсуждение.
Разочаровывает, что нужно прочитать все закрытые отзывы, чтобы получить эту информацию. Если последний пост действительно полезен, его следует включить в приведенный выше документ.
Я согласен с @pflickin. Должен быть более простой способ получить эту информацию. Было бы очень полезно, если вы хотите автоматизировать это.
Спасибо всем за обсуждение этого вопроса. Мы продолжаем внутреннее обсуждение этого вопроса и в настоящее время не планируем обновлять документ какими-либо дополнительными действиями.
Какого черта? По-прежнему невозможно определить правильные имена дисков, следуя текущим документам. Недавно я выбрал дополнительный диск, потому что те, которые поставлялись с виртуальными машинами, обычно недостаточно велики, и мне потребовалось несколько часов, чтобы выяснить, как его смонтировать. (Он не нашел эту ветку при поиске, поэтому найти решение здесь невозможно.)
Как бы то ни было, вы можете использовать sudo fdisk -l
для получения размеров дисков и mount -l
и df -h
для определения существующих креплений и их размеров, если вы не пытаетесь одновременное добавление нескольких дисков одинакового размера выполняется путем перекрестного сравнения этих выходных данных.
Это не совсем удобно для пользователя, и необходимость поиска этих команд в течение нескольких часов также неприемлема, и даже тогда, учитывая, что вы можете добавить несколько дисков одинакового размера во время создания виртуальной машины без каких-либо предупреждений или указаний, это ужасно для пользователя. .
Да, этот документ нуждается в обновлении. А пока я собираюсь добавить сюда эти ссылки, если они будут полезны:
https://github.com/canonical/cloud-init/blob/master/udev/66-azure-ephemeral.rules
https://github.com/Azure/WALinuxAgent/blob/master/config/66-azure-storage.rules
Для всех, кто интересуется тем, как определить, какой диск является правильным, я обновил документ, чтобы использовать lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
который показывает весь диск, монтирования и т. Д. С номером и размером LUN. Если вы сравните это с порталом Azure> ВМ> Диски, вы сможете найти диск по номеру LUN, если все диски одинакового или похожего размера. Надеюсь на эту помощь!
Самый полезный комментарий
Разочаровывает, что нужно прочитать все закрытые отзывы, чтобы получить эту информацию. Если последний пост действительно полезен, его следует включить в приведенный выше документ.