如何使用SCST与QLogic HBA在Linux上创建光纤通道SAN Debian 6
我创建了这个操作方式,因为互联网上的其他指令都没有正常工作。 这是专门为Ubuntu和Debian完成的,基于2.6.32,尽管有一些常识,这应该适用于任何发行版和任何内核。
你应该有一个基本的Linux理解拷贝粘贴一切都不行。
首先确保您可以看到启动菜单并更改启动选项。
nano /etc/default/grub
#出隐藏启动和超时并保存:
update-grub
安装构建的先决条件:
apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev gcc libncurses5-dev linux-headers - $(uname -r)lsscsi patch subversion
apt-get build-dep --no-install-recommends linux-image-$(uname -r)
确保QLogic固件可用:
ls /lib/firmware/ | grep ql*
如果缺少,请从http://ldriver.qlogic.com/firmware/下载固件
#(用于debian安装固件)
mkdir /root/tmp
cd /root/tmp
wget http://ftp.au.debian.org/debian/pool...ueeze1_all.deb
dpkg -i firmware-qlogic_0.28+squeeze1_all.deb
ls /lib/firmware/ | grep ql*
下载SCST Trunk包括QLogic目标驱动程序:
cd /root
svn co https://scst.svn.sourceforge.net/svnroot/scst/trunk scst
卸载系统默认驱动程序:
rmmod qla2xxx
echo blacklist qla2xxx >/etc/modprobe.d/blacklist-qla2xxx.conf
下载并安装您的内核源并链接/ usr / src / linux
:
cd /usr/src
apt-get install linux-source-2.6
tar xjf linux-source-2.6.32.tar.bz2
ln -s /usr/src/linux-source-2.6.32 Linux
补丁源内核准备加载SCST QLogic驱动程序(我相信更多的):
cd /usr/src/linux-source-2.6.32
patch -p1 < /root/scst/scst/kernel/scst_exec_req_fifo-2.6.32.patch
复制运行配置文件以在新内核中使用:
cp -vi /boot/config-`uname -r` .config
备份内核原始QLogic驱动程序,并链接到SCST QLogic驱动程序。
mv /usr/src/linux/drivers/scsi/qla2xxx /usr/src/linux/drivers/scsi/qla2xxx_orig
ln -s ~/scst/trunk/qla2x00t /usr/src/linux/drivers/scsi/qla2xxx
制作菜单,并确保按照以下路线选择QLogic目标模式。
make menuconfig
Device Drivers->SCSI device support->SCSI low level drivers->Qlogic 2xxx target mode support
如果有多个内核,可以更快地进行构建:
export CONCURRENCY_LEVEL="number of CPU cores plus 1"
将内核构建成一个deb包:
cd /usr/src/linux
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-scst kernel-image kernel-headers
安装新内核:
cd /usr/src/
dpkg -i linux-image-2.6.32-scst_2.6.32-scst-10.00.Custom_amd64.deb
dpkg -i linux-headers-2.6.32-scst_2.6.32-scst-10.00.Custom_amd64.deb
在Ubuntu中,您可能需要在重新引导之前更新RAM磁盘。 Google的过程,但我认为是:
update-initramfs -u
reboot
引导入新安装的内核。
选择适合您需求的构建模式,例如最佳性能或调试SCST。 默认模式为调试模式。 这里是如何切换到发布模式:
cd /root/scst
make 2release
现在构建SCST内核模块。
cd /root/scst/scst/src
make all
make install
构建QLogic目标驱动程序如下:
cd /root/scst
BUILD_2X_MODULE=y CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA2XXX_TARGET=y \
make -s -C qla2x00t/qla2x00-target install
ls -l /lib/modules/`uname -r`/extra/qla2*
使用'modprobe'程序插入内核模块并添加到启动模块中:
nano /etc/modules
将下面的文本添加到底部并保存/ etc / modules
:
scst qla2xxx_scst qla2x00tgt scst_vdisk scst_user scst_disk
手动加载模块或重启。
modprobe scst
modprobe qla2xxx_scst
modprobe qla2x00tgt
modprobe scst_vdisk
modprobe scst_user
modprobe scst_disk
找到并记录目标WWN:
cat /sys/class/fc_host/host*/port_name
安装SCST管理员:
cd /root/scst/scstadmin
make
make install
配置QLogic设备,创建组,创建虚拟磁盘,创建LUN并将其分组在一起。
scstadmin -enable_target "target WWN" -driver qla2x00t
scstadmin -add_group "group name" -driver qla2x00t -target "target WWN"
scstadmin -add_init "initiator wwn" -driver qla2x00t -target "target wwn" -group "group name"
scstadmin -add_init "additional initiator wwn" -driver qla2x00t -target "target wwn" -group "group name"
创建并使用虚拟驱动器作为LUN - 将使用位于/ mnt /的
disk1作为示例文件路径。
dd if=/dev/zero of="file path" bs="size in kb" count=512
ls -l /mnt/disk1
file /mnt/disk1
scstadmin -open_dev "VD Name being disk1" -handler vdisk_fileio -attributes filename=/mnt/disk1
scstadmin -add_lun "lun ID" -driver qla2x00t -target "Target WWN" -group "group name" -device "VD Name being disk1"
scstadmin -write_config /etc/scst.conf
仍在处理脚本/etc/init.d/scst
在引导时不运行的问题。 为了解决这个问题,我简单地介绍一下sudo,并向/etc/rc.local
添加了一个命令。
apt-get install sudo
nano /etc/rc.local
将以下命令添加到文件的底部,但在结尾0之前:
sudo scstadmin -config /etc/scst.conf
以下是一个/etc/scst.conf
文件示例:
HANDLER vdisk_fileio {
DEVICE VDisk01 {
filename /vdisk/VDisk01
}
}
TARGET_DRIVER qla2x00t {
TARGET 21:00:00:1b:32:08:6d:ea {
HW_TARGET
enabled 1
rel_tgt_id 1
GROUP esxi {
LUN 0 VDisk01
INITIATOR 20:00:00:1b:32:08:a7:c3
INITIATOR 21:00:00:1b:32:08:a7:c3
}
}
TARGET 21:01:00:1b:32:28:6d:ea {
HW_TARGET
enabled 0
}
}