iscsi服务器--网络驱动器设备
Iscsi是将来自网络的数据仿真成本机的scsi(磁盘)设备 因此可以进行诸如LVM等方面的操作 而不是单纯的使用服务器端提供的文件系统
不管哪个架构 它们的内部硬盘通常是以磁盘阵列(RAID)作为基础的
NAS(network attach storage,网络附加存储服务器)NAS其实就是一台定制好的主机 只要NAS连接上网络 那么在网络上的其他主机就可以连接上NAS上面的数据了 即NAS就是一台file server
NAS通常支持tcp/ip 并会提供nfs samba ftp等常见通信协议来提供客户端取得文件系统
SAN(storage area network,存储局域网)当有大量磁盘使用的需求时 这时就是用SAN
NAS和SAN的差异 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)共享成单一磁盘
使用lvm的lv设备共享为磁盘
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怎么用 下面我们就来操作一下)