如何在QLogic HBA上使用SCST创建光纤通道SAN在Linux Debian 6上

如何使用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
        }
}
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏