Scsi layer in linux

SCSI and Linux

The Small Computer System Interface (SCSI) allows one to chain high speed devices to your computer.

Related YoLinux Tutorials:

SCSI devices under Linux are often named to suite the device. For example the first SCSI tape drive is /dev/st0. The first SCSI CD-ROM is /dev/scd0. These devices do not have partitions and do not use letter identifiers. SCSI disks are labled /dev/sda, /dev/sdb, /dev/sdc etc. to represent the first, second, third. SCSI hard drives but they do not reflect the SCSI ID. SCSI hard drive partitions are represented by an additional number. i.e. First drive first partition, /dev/sda1, second partition, /dev/sda2. The drive names are incremented across multiple SCSI HBA’s (cards) as if it is all one device. When using scanners, one uses the «raw» device name.

SCSI ID Number Linux Device (raw name)
0 /dev/sga
1 /dev/sgb
2 /dev/sgc
3 /dev/sgd
4 /dev/sge
5 /dev/sgf
6 /dev/sgg
7 /dev/sgh

The SCSI device number 7 is usually reserved for the SCSI card itself.
To list scsi devices on Linux system: cat /proc/scsi/scsi

SCSI will use a controller ID, channel ID, unit ID and LUN (Logical unit number).

List partition table: fdisk -l

    One can verify that the SCSI driver module has been loaded with the command: /sbin/lsmod Typical listing for the Adaptec driver aic7xxx.

The SCSI driver module can be loaded manualy with the command: insmod aic7xxx

The modules to be loaded upon system boot are listed in the file: /etc/modules.conf

Options (seek order and debug options) for the Adaptec SCSI module can be listed in the file: /etc/modules.conf

The latest Adaptec drivers can be found at http://people.freebsd.org/

gibbs/linux/ in driver install floppy «img» format, Red Hat RPMs and as source code.

Installing Red Hat Linux on a system for which a new adapter driver does NOT exist, you must provide it during installation. Download the «img» floppy image from http://people.freebsd.org/

gibbs/linux/ and write it to a floppy: dd if=aic7xxx-6.2.36-i686.img of=/dev/fd0 bs=1440k You will be prompted for the floppy during installation.

Источник

Администрирование систем Linux. Дисковые устройства

Часть II. Управление дисковыми устройствами

Глава 4. Дисковые устройства

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

4.1. Терминология

4.1.1. Пластина, головка, дорожка, цилиндр, сектор

В дисковых накопителях данные обычно хранятся на магнитных или оптических пластинах (disk platters). Пластины вращаются (с высокими скоростями). Данные считываются с помощью головок (heads), которые расположены очень близко к поверхности пластин, но не прикасаются к ним! Головки смонтированы на держателе (иногда называемом приводом или вилкой).

Данные записываются по концентрическим окружностям, называемым дорожками (tracks). Нулевой трек (обычно) располагается возле внешней стороны пластины. Время, необходимое для позиционирования головки над определенной дорожкой, называется временем перехода к дорожке (seek time). Обычно пластины располагаются одна над другой, поэтому набор дорожек, доступный при определенном позиционировании держателя головки формирует цилиндр (cylinder). Дорожки разделены на секторы по 512 байт с дополнительным неиспользуемым пространством ( разрывом ) между секторами на внешней стороне пластины.

При рассмотрении составляющих времени доступа (access time) для жесткого диска вы можете отметить, что большая часть времени уходит на позиционирование головок (около 65 %) и задержки вращения пластин (roatational latency) (около 30 %).

4.1.2. Интерфейсы IDE или SCSI

На самом деле следовало бы использовать заголовок «интерфейсы ATA или SCSI «, так как устройство IDE является ATA-совместимым устройством. В большинстве настольных компьютеров используются устройства ATA , в большинстве серверов — устройства SCSI .

4.1.3. Интерфейс ATA

Контроллер ATA позволяет использовать два устройства на каждой из шин, причем одно из устройств должно быть ведущим , а другое — ведомым . В том случае, если ваш контроллер не поддерживает возможность автоматического распределения ролей устройств «cable select», вам придется производить соответствующие настройки самостоятельно с помощью джамперов.

Читайте также:  Не удалось выполнить обновление выполняется восстановление предыдущей версии windows

После представления общественности интерфейса SATA (Serial ATA) оригинальный интерфейс ATA был переименован в интерфейс Parallel ATA . Устройства чтения оптических дисков обычно используют интерфейс ATAPI , который на самом деле является интерфейсом ATA, использующим протокол обмена данными SCSI.

4.1.4. Интерфейс SCSI

Контроллер SCSI позволяет использовать более двух устройств. При использовании интерфейса SCSI ( Small Computer System Interface ) каждое устройство получает уникальный идентификатор scsi id . Контроллеру SCSI также требуется идентификатор scsi id , причем вы не должны использовать данный идентификатор для подключенного к контроллеру устройства SCSI.

Старый 8-битный интерфейс SCSI в наши дни называют narrow SCSI , а 16-битный интерфейс — wide SCSI . После удвоения частоты шины до 10MHz интерфейс стал называться fast SCSI . А после следующего удвоения частоты шины до 20MHz было введено название ultra SCSI . Обратитесь к статье https://ru.wikipedia.org/wiki/SCSI для ознакомления с остальными стандартами интерфейса SCSI.

4.1.5. Блочное устройство

Для жестких дисков с возможностью произвольного доступа к данным в рамках операционной системы реализован уровень абстракции под названием » блочное устройство » (block device), позволяющий осуществлять форматирование этих дисков с использованием блоков фиксированного размера (обычно равного 512 байтам). При этом доступ к каждому из блоков устройства может осуществляться независимо от доступа к любым другим блокам устройства.

Для обозначения файлов блочных устройств в выводе команды ls -l используется символ b.

Обратите внимание на то, что в выводе команды ls -l символьные устройства , позволяющие работать исключительно с непрерывными потоками символов, обозначаются с помощью символа c. Также следует помнить о том, что оптический диск CDROM, соответствующий стандарту ISO 9660, использует блоки, размер каждого из которых равен 2048 байтам .

В старых жестких дисках (а также в дискетах) для доступа к секторам используется система адресации на основе номеров цилиндров, головок и секторов . При этом в большинстве современных дисков используется система адресации LBA (Logical Block Addressing) .

4.1.6. Твердотельные накопители

Твердотельный накопитель или SSD (Solid State Drive) является блочным устройством без движущихся частей. Его можно сравнить с флеш-памятью . Устройства SSD превосходят в цене жесткие диски, но при этом обычно характеризуются гораздо меньшими значениями времени доступа к секторам.

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

4.2. Имена файлов устройств

4.2.1. Имена файлов устройств ATA (IDE)

Пути к файлам всех устройств ATA в вашей системе будут начинаться с /dev/hd с последующим буквенным символом. Ведущий жесткий диск, подключенный к первому контроллеру ATA будет представлен в системе с помощью файла устройства /dev/hda, ведомый — с помощью файла устройства /dev/hdb. Именами файлов устройств, подключенных ко второму контроллеру, будут /dev/hdc и /dev/hdd.

Таблица 4.1. Имена файлов устройств IDE

Контроллер Роль устройства Имя файла устройства
IDE 0 Ведущее /dev/hda
Ведомое /dev/hdb
IDE 1 Ведущее /dev/hdc
Ведомое /dev/hdd

Вполне вероятна ситуация, в которой в вашей системе будут созданы только файлы устройств /dev/hda и /dev/hdd . Первый файл будет представлять единственный жесткий диск, а второй — привод для чтения дисков CDROM (по умолчанию настроенный как ведомое устройство).

4.2.2. Имена файлов устройств SCSI

Для файлов устройств SCSI используется аналогичная схема, но все пути к этим файлам начинаются с /dev/sd . В том случае, если для представления устройств, используемых в вашей системе, не хватит букв английского алфавита (устройство, представленное файлом /dev/sdz, не будет являться последним), в именах файлов устройств будет использоваться более одной буквы: /dev/sdaa, /dev/sdab и так далее. (Также позднее мы увидим, что тома LVM обычно представлены файлами устройств /dev/md0, /dev/md1, и.т.д.).

Ниже приведен пример распределения имен файлов устройств в Linux между устройствами SCSI. Добавление диска SCSI или RAID-контроллера с меньшим значением идентификатора scsi id приведет к изменению схемы распределения имен устройств (сдвигу вперед на одну букву из алфавита для устройств с большими значениями идентификаторов scsi id).

Таблица 4.2. Имена файлов устройств SCSI

Устройство Идентификатор scsi id Имя файла устройства
диск 0 0 /dev/sda
диск 1 1 /dev/sdb
RAID-контроллер 0 5 /dev/sdc
RAID-контроллер 1 6 /dev/sdd
Читайте также:  Проверка существования пользователя linux

В современной системе Linux файлы устройств /dev/sd* будут использоваться для представления устройств SCSI и SATA, а также карт памяти SD, накопителей с интерфейсом USB, устройств ATA/IDE (устаревших) и твердотельных накопителей.

4.3. Определение параметров дисковых устройств

4.3.1. Утилита fdisk

Процедура определения параметров дисковых устройств может быть начата с установления определенных ядром ОС типов устройств с помощью утилиты /sbin/fdisk . Ниже представлен результат использования данной утилиты на старом настольном компьютере с двумя дисками ATA/IDE, работающем под управлением дистрибутива Debian.

А ниже приведен пример описания параметров дисков SATA и SCSI , которые установлены в сервере, работающем под управлением дистрибутива CentOS. Помните о том, что для представления дисков SATA также используется нотация имен файлов устройств, принятая для дисков SCSI , а именно, /dev/sd*.

Ниже приведено описание параметров двух реальных дисков SCSI объемом по 72 ГБ, которые установлены в сервере, работающем под управлением дистрибутива RHEL4u3. Данный сервер соединен с сервером сетевого хранилища ( NAS ) с четырьмя дисками объемом в половину терабайта каждый. На дисках сервера сетевого хранилища размещены четыре раздела LVM (/dev/mdx), предназначенные для формирования программного RAID-массива.

Также вы можете использовать утилиту fdisk для получения информации о каждом отдельном дисковом устройстве.

Позднее мы будем использовать утилиту fdisk для выполнения таких опасных операций, как создание и удаление разделов жестких дисков.

4.3.2. Утилита dmesg

Сообщения, выводимые при загрузке ядра ОС, могут быть изучены и после загрузки ОС благодаря наличию утилиты dmesg . Ввиду того, что дисковые устройства определяются ядром ОС в процессе загрузки системы, вы также можете использовать утилиту dmesg для поиска информации о дисковых устройствах.

А ниже приведен другой пример фрагмента вывода утилиты dmesg , полученного при работе с компьютером, оснащенным жестким диском ATA объемом 200 ГБ.

В последнем, третьем примере приведен фрагмент вывода утилиты dmesg , полученный при работе с дистрибутивом RHEL 5.3.

4.3.3. Утилита /sbin/lshw

Утилита lshw позволяет получить список параметров аппаратного обеспечения (название утилиты расшифровывается как «list hardware» — «получение списка параметров аппаратного обеспечения»). При передаче соответствующих параметров утилита lshw может вывести большой объем информации о дисковых устройствах (и созданных на этих устройствах разделах).

Ниже приведен сокращенный пример вывода данной утилиты, полученный при работе с дистрибутивом Debian 6:

Данная утилита не поставляется в составе дистрибутивов Redhat и CentOS (но вы можете подключить дополнительный репозиторий программного обеспечения и установить ее).

4.3.4. Утилита /sbin/lsscsi

Утилита lsscsi выводит информацию обо всех устройствах SCSI (а также об эмулируемых устройствах SCSI) в удобном для чтения формате. В первом примере показан вывод утилиты lsscsi при работе с системой SPARC.

Ниже приведен пример вывода утилиты lsscsi при работе с сервером сетевого хранилища QNAP NAS (в котором установлено четыре диска объемом 750 ГБ, причем сам сервер поддерживает возможность загрузки операционной системы с накопителя с интерфейсом USB).

А в этом примере приведен классический вывод утилиты lsscsi .

4.3.5. Файл /proc/scsi/scsi

Другой способ обнаружения дисковых устройств SCSI (или SATA) заключается в чтении файла /proc/scsi/scsi .

В данном примере показано содержимое упомянутого файла в системе SPARC с контроллером RAID 5 производства компании Adaptec.

А это вывод команды cat /proc/scsi/scsi для упомянутого выше сервера сетевого хранилища QNAP (работающего под управлением Debian Linux).

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

В дистрибутивах Redhat и CentOS данный файл присутствует по умолчанию (в случае наличия устройств SCSI).

4.4. Очистка жесткого диска

Перед продажей вашего старого жесткого диска через торговую площадку в сети Интернет следует удалить все хранившиеся на нем ранее данные. После простого изменения таблицы разделов, применения утилиты format из состава ОС Microsoft Windows или даже после применения утилиты mkfs некоторые специалисты все еще будут иметь возможность прочитать большую часть данных, хранившихся на диске.

Хотя в техническом плане утилита /sbin/badblocks и предназначена для отслеживания поврежденных секторов на диске, вы также можете использовать ее для полного удаления всех данных с диска. Так как данная утилита в прямом смысле записывает данные в каждый сектор диска, процедура удаления данных может занять много времени!

Читайте также:  Как открыть iso файл linux

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

Обратите внимание на то, что в примере ниже показан способ необратимого уничтожения всех данных, сохраненных на блочном устройстве.

4.5. Дополнительные параметры функционирования дисковых устройств

Подробное рассмотрение вопросов установки значений параметров функционирования жестких дисков (таких, как dma, gap, ) выходит за рамки данного курса. Тем не менее, необходимо упомянуть о том, что для этих целей существует несколько утилит, причем утилиты hdparm и sdparm являются двумя наиболее часто используемыми из них.

Утилита hdparm может использоваться для вывода информации и установки значений параметров функционирования жестких дисков с интерфейсом ATA (SATA). Параметры -i и -I позволят вам получить дополнительную информацию о физических свойствах вашего устройства.

Ниже приведена информация о жестком диске с интерфейсом IDE объемом в 200 ГБ, выводимая утилитой hdparm .

А это пример вывода утилиты sdparm из состава дистрибутива Ubuntu 10.10.

Используйте утилиты hdparm и sdparm с особой осторожностью.

4.6. Практическое задание: дисковые устройства

О данном практическом задании: для того, чтобы получить практические навыки по работе с жесткими дисками, вам, разумеется, потребуется несколько жестких дисков. В том случае, если у вас в распоряжении нет физического жесткого диска, вы можете использовать виртуальные диски виртуальной машины vmware или VirtualBox . Инструктор должен помочь с подключением нескольких жестких дисков ATA и/или SCSI к виртуальной машине. Результаты выполнения данного практического задания могут использоваться при выполнении трех следующих практических заданий (посвященных работе разделами, файловыми системами, а также монтированию файловых систем).

Рекомендуется подключить к виртуальной машине три жестких диска объемом 1 ГБ и три жестких диска объемом 2 ГБ. Это позволит выполнить как текущее практическое задание, так и практические задания из следующих глав (посвященные работе с RAID-массивами, разделами LVM и iSCSI) без лишних сложностей.

1. Используйте утилиту dmesg для получения списка всех устройств жестких дисков, обнаруженных в процессе загрузки системы.

2. Используйте утилиту fdisk для вычисления общего объема всех жестких дисков, установленных в вашей системе.

3. Остановите виртуальную машину, добавьте три виртуальных диска с интерфейсом SCSI объемом в 1 ГБ каждый и один виртуальный диск с интерфейсом IDE объемом в 400 МБ. Если это возможно, также добавьте еще один виртуальный диск с интерфейсом IDE объемом в 400 МБ.

4. Используйте утилиту dmesg для проверки корректности обнаружения новых дисковых устройств в процессе загрузки системы.

5. Проверьте наличие файлов устройств, соответствующих дисковым устройствам, в директории /dev .

6. Используйте утилиту fdisk (совместно с утилитой grep и специальным файлом устройства /dev/null ) для вывода информации об объеме новых дисковых устройств.

7. Используйте утилиту badblocks для полной очистки одного из дисков наименьшего объема.

8. Рассмотрите содержимое файла /proc/scsi/scsi .

9. Если это возможно, установите утилиты lsscsi и lshw , после чего используйте их для получения списка дисковых устройств.

4.7. Корректная процедура выполнения практического задания: дисковые устройства

1. Используйте утилиту dmesg для получения списка всех устройств жестких дисков, обнаруженных в процессе загрузки системы.

Некоторые возможные варианты ответов.

2. Используйте утилиту fdisk для вычисления общего объема всех жестких дисков, установленных в вашей системе.

3. Остановите виртуальную машину, добавьте три виртуальных диска с интерфейсом SCSI объемом в 1 ГБ каждый и один виртуальный диск с интерфейсом IDE объемом в 400 МБ. Если это возможно, также добавьте еще один виртуальный диск с интерфейсом IDE объемом в 400 МБ.

Данное задание выполняется путем редактирования настроек виртуальной машины vmware или VirtualBox.

4. Используйте утилиту dmesg для проверки корректности обнаружения новых дисковых устройств в процессе загрузки системы.

Аналогично заданию 1.

5. Проверьте наличие файлов устройств, соответствующих дисковым устройствам, в директории /dev .

6. Используйте утилиту fdisk (совместно с утилитой grep и специальным файлом устройства /dev/null ) для вывода информации об объеме новых дисковых устройств.

7. Используйте утилиту badblocks для полной очистки одного из дисков наименьшего объема.

8. Рассмотрите содержимое файла /proc/scsi/scsi .

9. Если это возможно, установите утилиты lsscsi и lshw , после чего используйте их для получения списка дисковых устройств.

Источник

Оцените статью