iscsi服务器--网络驱动器设备

Iscsi是将来自网络的数据仿真成本机的scsi(磁盘)设备 因此可以进行诸如LVM等方面的操作 而不是单纯的使用服务器端提供的文件系统

不管哪个架构 它们的内部硬盘通常是以磁盘阵列(RAID)作为基础的

NASnetwork attach storage,网络附加存储服务器)NAS其实就是一台定制好的主机 只要NAS连接上网络 那么在网络上的其他主机就可以连接上NAS上面的数据了 即NAS就是一台file server

NAS通常支持tcp/ip 并会提供nfs samba ftp等常见通信协议来提供客户端取得文件系统

SANstorage area network,存储局域网)当有大量磁盘使用的需求时 这时就是用SAN

NASSAN的差异 SAN挂载时会多出一个大磁盘 并可针对SAN提供的磁盘进行分区与格式化 但NAS不能格式化

ISCSI接口

Iscsi就是通过一个网络接口将磁盘共享出去

Iscsi(internet scsi) iscsi主要是通过tcp/ip的技术 将存储设备端通过iscsi target功能 做成可以提供磁盘的服务器端 再通过iscsi initiator(iscsi用户初始化)功能 做成能够挂载使用iscsi target的客户端 如此则是通过iscsi协议来进行磁盘的应用了

Iscsi target 就是存储设备端 存放磁盘或raid的设备 目前也能将linux主机仿真成iscsi target了 目的在于提供其他主机使用的磁盘

Iscsi initiator 就是能够使用target的客户端 即想要连接上iscsi target的服务器 也必须安装上iscsi inititaor相关的软件 才能使用iscsi target提供的磁盘

服务器是如何取得并利用磁盘或文件系统的:

1 直接访问;例如本及上面的磁盘就是可以直接访问的设备

2 通过存储局域网(SAN)来自局域网内的其他存储设备提供的磁盘

3 网络文件系统(NAS) 来自NAS提供的文件系统 只能立即使用不能格式化

ISCSI target的设置(服务器端)

下载软件 服务端 yum install -y scsi-target-utils iscsi-initiator-utils

          客户端Yum install -y iscsi-initiator-utils

下载好软件 只需修改配置文件即可/etc/tgt/target.conf 然后启动tgtd这个服务即可

那些类型的磁盘可以共享:

应用dd命令所建立的大型文件可供仿真为磁盘(无须预先格式化)

使用单一分区(partition)共享为磁盘

使用单一完整的磁盘(无须预先分区)

使用磁盘阵列共享

使用软件磁盘阵列(software RAID)共享成单一磁盘

使用lvmlv设备共享为磁盘

Iscsi target服务器端的具体步骤:

1 建立所需要的磁盘设备

Fdisk /dev/sda

Partprobe

Fdisk -l

Swapon -s

Pvcreate /dev/sda1

Vgextend vg0 /dev/sda1

Lvcreate -L 2G -n iscsi vg0

2规划共享的iscsi target 文件名

iqn.2011-08.org.westos:targetname   ##通过iscsi共享出来的target文件名都是以iqn开头    westos.org的反转域名写成org.westos

target上的同一个磁盘我们可以将他定义为LUN(逻辑单位标号 Logical Unit Number LUN LUN1 LUN2 LUN3

设置tgt的配置文件/etc/tgt/targets.conf

Vim /etc/tgt/targets.conf

启动iscsi target以及查看相关端口与磁盘信息

/etc/init.d/tgtd start

Chkconfig tgtd on

Netstat -tulnp | grep tgt  ## tcp 3260

TCP 3260 这个数据包 防火墙一定要开通这个端口

tgt-admin --show  ##查看一下我们target的信息 以及提供的LUN数据内容

Iscsi initiator的设置

谈完了target的设置 并且观察到target LUN后 接下来就是要挂载使用了,方法很简单就是安装额外的软件来获取target lun使用权

 Yum install -y iscsi-initiator-utils

修改/etc/iscsi/iscsid.conf内容 并启动iscsi

 这个文件的修改很简单 里面的参数已经默认的设置的差不多了 只要填写target登陆时所需要的用户和帐号即可

Chkconfig iscsid on

测试target的相关数据 iscsiadm -m discovery -t sendtargets -p 172.25.254.27:3260

ll -R /var/lib/iscsi/nodes

可看到以iqn开头的target文件名共享出来 这是就正确了

 开始进行连接iscsi target

/etc/init.d/iscsi restart

Iscsiadm -m node ##显示目前系统上所有的target数据

Iscsiadm -m node -T target名称 --login 登陆某台target

iscsiadm -m node -T iqn-2011--8-westos.org:mydisk --login  

更新/删除/添加 target数据的方法

如果ISCSI target 可能由于某些原因被拿走了 或者坏了 这个时候iscsi initiator 就需要关闭 但是又不能全部关掉(/etc/init.d/iscsi stop)

因为还有其它的iscsi target再用 这个时候如何取消不要的target呢 流程如下:

Iscsiadm -m node -T targetname --logout

Iscsiadm -m node -o delete|new|update -T targetname

--logout 注销target (但并没有删除/var/lib/iscsi/nodes/内的数据)

-o delete 删除后面接的那个target 连接的数据

-o new 增加一个新的target信息

-o update 更新相关信息

例子 删除来自鸟哥的iscsi target 的数据 并且删除连接

Iscsiadm -m node  ##显示出来相关的target iqn 名称

Iscsiadm -m node -T iqn-2011-08.vbird.centos:vbirddisk --logout  虽然注销了 但这时候的连接还在 所以要删除

Iscsiadm -m node -o delete -T iqn.2011-08.vbird.centos:vbirddisk

Iscsiadm -m node 这是就不存在target

/etc/init.d/iscsi restart

 

一个范例 (到底iscsi怎么用 下面我们就来操作一下)