iSCSI网络储存服务 一 网络储存概述 ·直接附加储存 通常我们所熟悉的储存设别就是硬盘,其通过与计算机主板的I/O接口(如IDE、SCSI)相连接,由本机操作系统负责读写及管理,这就是最传统的数据储存技术,称为DAS(Direct Attached Storage,直接附加储存) ·网络储存 随着企业中数据信息的不断增长,尤其当成百上千TB的数据需要备份、恢复,以及面临着扩容、灾难恢复等需要时,DAS方式使得数据的管理与维护日益困难。正因为如此,网络储存技术应运而生,其最常见的就是NAS和SAN SAN(Storage Area Network,储存区域网络) SAN是通过光纤交换机、光纤路由器等设备将磁盘阵列、磁带机或独立的ISCSI设备与服务器连接,构成一个高速储存子网,储存的数据以数据块的形式通过ISCSI协议进行传输,从而优于普通的IP包传输;结构如图所示 NAS(network attachment storage,网络附加储存) 二 构建iSCSI服务器 ·iSCSI概述 iSCSI(iscsi= internet Small Computer System Interface ) 是由IEETF开发的网络储存标准,目的是为了用IP协议将储存设备连接在一起。通过在IP网上传送SCSI命令和数据,ISCSI推动了数据在网际之间的传递,同时也促进了数据的远距离管理 ISCSI技术的核心 是在TCP/IP网络上传输SCSI协议,是指用TCP/IP报文、和ISCSI报文封装SCSI报文,使得SCSI命令和数据可以在普通以太网络上进行传输 iSCSI协议 定义了在 TCP/IP 网络发送、接收 block(数据块)级的储存数据的规则和方 法。发送端将SCSI命令和数据封装到 TCP/IP 包中再通过网络转发,接收端收到 TCP/IP 包之后,将其还原为SCSI命令和数据并执行,完成之后将返回的SCSI命令和数据再封装到 TCP/IP包中再传送回发送端。而整个过程在用户看来,运用远端的储存设备就像访问本地的 SCSI设备一样简单。 iSCSI的工作方式 服务(设备)端 target 客户(使用)端 initiator ·在RHEL6中搭建ISCSI储存服务器 ISCSI服务器通常也称为Target端,负责定义储存对象、分配逻辑空间LUN(Logical Unit,逻辑单元)(实验环境时,开虚拟机前最好添加四块以上硬盘) 1准备储存设备 储存设备指将要分配给某一个客户机运用的设备文件,在RHEL6系统中,硬盘、分区、逻辑卷、软RAID等都可以用作ISCSI服务的储存设备,为了延续磁盘空间的可扩展性,建议以一个逻辑卷为单位分配给客户机运用,对于个别有特殊要求的客户机,也可以将一个软RAID LVM逻辑卷储存设备 将新添加的一块磁盘创建为物理卷,创建卷组,在卷组中创建一个容量为10G的逻辑卷 在Linux系统中做RAID,磁盘阵列的设备可以是一块磁盘中的三个以上的分区,也可以是三块或以上的磁盘;运用mdadm管理工具(默认已安装)来创建软RAID设备,这里运用三块硬盘,每块20G,创建一个RAID5阵列 [root@svr ~]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd[b-f]或简写为 其中 --auto=yes /dev/md0 //新建立的软件磁盘阵列设备为md0,md序号可以为0-9 --level=5 //磁盘阵列的等级,这里表示创建是的raid5 --raid-devices //添加作为磁盘阵列用的磁盘的块数 --spare-devices //添加作为预备(spare)磁盘的块数 /dev/sd[b-d] //磁盘阵列所运用的设备,还可写成/dev/sdb /dev/sdc /dev/sdd 如果磁盘容量比较大,可以直接查看/proc/mdstat文件来了解RAID创建和运行情况 创建/etc/mdadm.conf这个配置文件,即可开机自启动 1扩容raid磁盘阵列 显示磁盘阵列的组成情况,4个块设备组成,:# cat /proc/mdstat 把/dev/sdg增加进阵列/dev/md0:# --add /dev/md0 /dev/sdg 执行下列命令: [root@svr ~]# mdadm --manage /dev/md0 --fail /dev/sdd //运用此命令设置磁盘sdd成为出错的状态 来查看一下:mdadm --detail /dev/md0 再来看一下重建完后的结果 先删除破坏的磁盘sdd: [root@svr raid5]# mdadm --manage /dev/md0 --remove /dev/sdd //将破坏的磁盘sdd从RAID中删除 再添加一块新的磁盘作为spare磁盘: [root@svr raid5]# mdadm --manage /dev/md0 --add /dev/sdg //添加新的磁盘sdg OK,再来查看一下: 执行以下命令 mdadm --detail /dev/md0查看结果 当你不再需要已经设置的RAID的时候,可以用以下方式关闭RAID: 1)卸载/dev/md0,并且删除或注释掉/etc/fstab文件中的配置: [root@svr ~]# umount /dev/md0 [root@svr ~]# vi /etc/fstab #/dev/md0 /mnt/raid5 ext4 defaults 0 0 2)注释掉或删除/etc/mdadm.conf中的设置: [root@svr ~]# vi /etc/mdadm.conf #ARRAY /dev/md0 UUID=d58ed27d:00ce5cf5:b26ed1e9:879d0805 3)停止raid设备 # mdadm --stop /dev/md0 4)删除raid中的所有磁盘 ![]() RAID0和RAID1实同于RAID5 RAID0:并行读写数据 RAID1:镜像磁盘阵列 2安装scsi-target-utils软件包 在RHEL6服务器中需要安装scsi-target-utils软件包,对应的系统服务为tgtd,命令行管理工具为tgtadm;有相关依赖包,建议运用yum安装 即将准备好的储存设备(逻辑卷和RAID5)添加到iSCSI中,为客户端准备储存空间(LUN);有两种方式:一种是运用命令的添加方式(略);一种是直接修改配置文件; iscsi target配置文件是/etc/tgt/targets.conf(在文件尾部添加如下内容) iqn.yyyy-mm. 其中: iqn:表示“iSCSI Qualified Name”,简称iqn。 yyyy-mm:表示年份-月份。这里是2011-08。 reversed domain name:表示倒过来的域名,这里是com.example。 identifier:表示识别代码,这里是disk backing-store用于指定储存设备,一般指非实际的物理磁盘,如LVM卷、某个分区、raid磁盘阵列。 initiator-address 地址 用于将target指派给指定的客户机运用,为了安全,可自定义设置 ·Linux客户端运用iSCSI储存设备 发现设备,若是默认端口3260可以省略不写 接下来运用磁盘就跟运用本地磁盘几乎一样(fdisk、mkfs、mount操作,与普通设备无异);进行分区格式化,挂载设置开机自启动等;若iSCSI设备已包含文件系统,则无需再格式化 Win Server2008 自带iSCSI客户端程序 1确保客户机与服务器的通信 2打开管理工具-iSCSI发起程序 |