Linux系統SCSI磁盤管理全攻略(二)



轉載請在文首保留原文出處:EMC中文支持論壇https://community.emc.com/go/chinese


介紹


本系列文章系統、全面地介紹了Linux 的SCSI設備管理機制和整套操作命令。包括以下六大主題:

  1. Linux SCSI子系統概述

  2. Linux主機LUN識別

  3. 動態SAN網絡重配

  4. LUN發現步驟

  5. Linux設備命名

  6. SCSI磁盤限制

附:SCSI磁盤問題識別與解決方法


作爲系列之二,本文主要介紹LUN發現步驟和Linux設備命名兩大主題,解答用戶常見問題乳:Linux驅動除了LUN 0以外,沒有自動配置其他LUN怎麼辦?Linux磁盤的命名規則是什麼?


更多信息


LUN發現步驟:


如果用戶的Linux驅動除了LUN 0以外,沒有自動配置其他LUN,用戶可以根據SCSI中間層驅動使用的參數和設置來手動配置。以下示例顯示了Linux主機/proc/scsi/scsi文件中,各適配器端口僅配置了第一個LUN,即LUN 0的情況。


# cat proc/scsi/scsi

...

Host: scsi0 Channel: 00 Id: 00 Lun: 00

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

Host: scsi0 Channel: 00 Id: 15 Lun: 00

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

Host: scsi2 Channel: 00 Id: 00 Lun: 00

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

Host: scsi3 Channel: 00 Id: 00 Lun: 00

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

Host: scsi3 Channel: 00 Id: 01 Lun: 00

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04


解決這一問題有兩種方式:

  1. 創建腳本在/proc/scsi/scsi文件中手動添加磁盤設備

  2. 通過修改initrd設置系統啓動時自動發現LUN


創建腳本echo /proc文件系統


使用scsi add-single-device命令連續配置分配給主機的所有LUN。寫一個腳本爲各主機適配器重複scsi add-single-device命令,從而給每一個LUN配置ID。該腳本必須掃描所有主機適配器端口並識別分配給各端口的所有LUN


腳本運行結束之後,用戶可以在/proc/scsi/scsi文件中查看分配的所有LUN

以下示例列出腳本配置所有LUN之後的/proc/scsi/scsi文件。

# cat proc/scsi/scsi

...

Host: scsi3 Channel: 00 Id: 01 Lun: 00

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

Host: scsi3 Channel: 00 Id: 00 Lun: 01

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

Host: scsi3 Channel: 00 Id: 00 Lun: 02

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

Host: scsi3 Channel: 00 Id: 00 Lun: 03

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

Host: scsi3 Channel: 00 Id: 00 Lun: 04

 Vendor: EMC      Model: SYMMETRIX    Rev: 5773

 Type:   Direct-Access                    ANSI SCSI revision: 04

...


在系統啓動時自動發現LUN


第二種方法是通過設置SCSI中間層驅動的參數來完成,此參數控制在SCSI總線掃描過程中掃描LUN的數量。以下步驟同時適用於2.42.6內核版本,但假定SCSI中間層驅動編譯爲scsi_mod模塊,並在系統啓動時自動加載。對於Linux 2.4內核版本,爲了發現所有卷,通常在系統中設置爲磁盤設備的最大數量,用戶需要設置SCSI中間層驅動的max_scsi_luns參數。例如,如果max_scsi_luns設置爲1SCSI總線只掃描到LUN 0。此參數應當設置爲內核能夠支持的最大磁盤數量,例如,128256。在Linux 2.6內核中,可使用同樣的步驟,除了參數名從max_scsi_lun更改爲max_lun


  • 編輯/etc/modules.conf文件

  • 添加以下內容:

options scsi_mod max_scsi_luns=<n>n表示探測的LUN總數)

  • 保存文件

  • 運行mkinitrd命令重新編譯當前內核相應的ram-disk。以下命令示例中,<kernel>爲當前運行內核版本,可參見”uname -r”命令的輸出,例如:2.4.21-292-smp


SUSE中命令如下:

cd /boot

mkinitrd –k vmlinuz-<kernel> -i initrd-<kernel>


Red Hat中命令如下:

cd /boot

mkinitrd –v initrd-<kernel>.img <kernel>

  • 重啓主機

  • 驗證/boot/grub/menu.lst文件中,已正確配置了新創建的initrd鏡像。


Linux設備命名:


內核驅動可使用特定的設備文件來控制磁盤設備。映射到同一物理磁盤設備的設備文件可能不止一個。例如,在多路徑環境下某一設備配置四條路徑,則會有四個不同的設備文件映射到同一設備。


設備文件位於/dev目錄下,通過majorminor編號訪問。光纖通道連接的設備通過sd驅動作爲SCSI磁盤設備管理。因此,每一個LUN/dev目錄下有一個對應的設備文件。


SCSI磁盤設備有一個以“sd”爲前綴的特定設備文件,具有如下命名格式:

/dev/sd[a-z][1-15]


名稱中不帶數字表示整個磁盤,而名稱中有數字則表示磁盤的一個分區。依據慣例,一個SCSI磁盤設備最多可以有16minor編號。因此,對於一整塊磁盤,每塊磁盤最多有15個分區,使用一個minor編號來標示整塊磁盤(例如/dev/sda),其他15minor編號用來標示該磁盤的分區(例如/dev/sda1/dev/sda2,等等)。以下示例顯示整塊磁盤/dev/sda的設備文件,該設備major編號爲8minor編號爲0,有15個分區。


# ls -l /dev/sda*

brw-rw----  1 root disk  8,   0 May 24 08:09 /dev/sda

brw-rw----  1 root disk  8,   1 May 24 08:09 /dev/sda1

brw-rw----  1 root disk  8,  10 May 24 08:09 /dev/sda10

brw-rw----  1 root disk  8,  11 May 24 08:09 /dev/sda11

brw-rw----  1 root disk  8,  12 May 24 08:09 /dev/sda12

brw-rw----  1 root disk  8,  13 May 24 08:09 /dev/sda13

brw-rw----  1 root disk  8,  14 May 24 08:09 /dev/sda14

brw-rw----  1 root disk  8,  15 May 24 08:09 /dev/sda15

brw-rw----  1 root disk  8,   2 May 24 08:09 /dev/sda2

brw-rw----  1 root disk  8,   3 May 24 08:09 /dev/sda3

brw-rw----  1 root disk  8,   4 May 24 08:09 /dev/sda4

brw-rw----  1 root disk  8,   5 May 24 08:09 /dev/sda5

brw-rw----  1 root disk  8,   6 May 24 08:09 /dev/sda6

brw-rw----  1 root disk  8,   7 May 24 08:09 /dev/sda7

brw-rw----  1 root disk  8,   8 May 24 08:09 /dev/sda8

brw-rw----  1 root disk  8,   9 May 24 08:09 /dev/sda9


對於Red Hat版本,內核實際上爲128個設備創建了設備文件。對於SUSE,只有前16塊磁盤有設備文件。用戶必須使用mknod命令爲其他磁盤創建設備文件。在2.6內核版本中,只有在內核發現並識別出設備時才能創建設備文件。/proc/partitions文件列出所有SCSI磁盤驅動識別出的“sd”設備,包括sd名,major編號,minor編號,以及各磁盤設備的大小。


以下示例列出/proc/partitions文件的內容:

# cat /proc/partitions

major minor  #blocks  name


  8     0   17774160 sda

  8     1    1052226 sda1

  8     2     208845 sda2

  8     3   10490445 sda3

  8    16     976576 sdb

  8    32     976576 sdc

  8    48     976576 sdd

  8    64     976576 sde

  8    80     976576 sdf

  8    96     976576 sdg

  8   112     976576 sdh

  8   128     976576 sdi

  8   144     976576 sdj

  8   160     976576 sdk

  8   176     976576 sdl

  8   192     976576 sdm

  8   208     976576 sdn

  8   224     976576 sdo

  8   240     976576 sdp

 65     0     976576 sdq

 65    16    1048576 sdr

 65    32    1048576 sds

 65    48    1048576 sdt

 65    64    1048576 sdu

 65    80    1048576 sdv

 65    96    1048576 sdw

 65   112    1048576 sdx

 65   128    1048576 sdy

 65   144    1048576 sdz

 65   160    1048576 sdaa

 65   176    1048576 sdab

 65   192    1048576 sdac

 65   208    1048576 sdad

 65   224    1048576 sdae

 65   240    1048576 sdaf

 66     0    1048576 sdag

 66    16    1048576 sdah

 66    32    1048576 sdai

 66    48    1048576 sdaj

 66    64    1048576 sdak

 66    80    1048576 sdal

 66    96    1048576 sdam

 66   112    1048576 sdan

 66   128    1048576 sdao

 66   144    1048576 sdap

 66   160    1048576 sdaq

 66   176    1048576 sdar

 66   192    1048576 sdas

 66   208    1048576 sdat

 66   224    1048576 sdau

 66   240    1048576 sdav


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章