array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 网络存储服务ip-san搭建 - 爱码网
huangdandan

                                                               网络存储服务ip-san搭建

一.简介

SAN (存储区域网络 storage area network and SAN protocols ,简称SAN),它是一种高速网络实现计算机与存储系统之间的数据传输。常见的分类是FC-SAN和IP-SAN两种。
FC-SAN通过光纤通道协议转发scsi协议;IP-SAN通过TCP协议转发scsi协议,也就是IP 地址。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列,主要厂商EMC、日立等。

iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。

     iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。

     iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。

     iSCSI属于端到端的会话层协议,它定义的是SCSI到TCP/IP的映射(如下图),即Initiator将SCSI指令和数据封装成iSCSI协议数据单元,向下提交给TCP层,最后封装成IP数据包在IP网络上传输,到达Target后通过解封装还原成SCSI指令和数据,再由存储控制器发送到指定的驱动器,从而实现SCSI命令和数据在IP网络上的透明传输。它整合了现有的存储协议SCSI和网络协议TCP/IP,实现了存储与TCP/IP网络的无缝融合。                       

 

 

 

 

二.实验环境

 

  • iscsi-disks: 192.168.117.10 iSCSI target,提供存储设备),默认配置1cpu1G内存。
  • iscsi-host: 192.168.117.11 iSCSI initiator,访问iSCSI设备的主机),默认配置1cpu1G内存。

 

 

三.实验步骤

服务端

1. 安装配置iSCSI Target服务端

[root@iscsi-disks ~]# yum install -y scsi-target-utils                       

 

2 . 启动target服务

[root@iscsi-disks ~]# systemctl enable tgtd                                  

 

3. 放通防火墙

[root@iscsi-disks ~]# iptables -I INPUT 1  -p tcp --dport 3260 -j ACCEPT

[root@iscsi-disks ~]# service iptables save                          

 

4. 新建存储分区,在这里我们通过在vmvare新增加一个块10G大小的磁盘 /dev/sdb,重启服务器

[root@iscsi-disks ~]# fdisk -l |grep "Disk"                                   

Disk /dev/sda: 21.5 GB, 21474836480 bytes                                 

Disk identifier: 0x0004a1ec                                              

Disk /dev/sdb: 10.7 GB, 10737418240 bytes                                     

Disk identifier: 0x00000000                                                

[root@iscsi-disks ~]# fdisk  /dev/sdb                                        

 

 

5. 共享存储分区,修改/etc/tgt/targets.conf 文件

[root@iscsi-disks ~]# vim /etc/tgt/targets.conf                                       

<target iqn.2016-08.cn.node01.www:target4_scan>    #命名                          

        backing-store /dev/sdb1                    #共享的分区                        

        initiator-address 192.168.117.11         #允许访问的地址                              

         vendor_id node                             #标示                                      

        product_id target4                         #产品编号                      

</target>                                                                  

[root@iscsi-disks ~]# systemctl restart tgtd                                

 

 

客户端

1. 安装iSCSI initiator软件包并重启服务

[root@iscsi-host ~]# yum -y install iscsi-initiator-utils                            

[root@iscsi-host ~]systemctl restart iscsi                                      

[root@iscsi-host ~]systemctl enable iscsi                                  

 

 

2.修改配置文件/etc/iscsi/initiatorname.iscsi

InitiatorName=iqn.2016-06.com.iscsi-host:iscsi-host                         

 

 

 3. 通过IP发现存储节点

InitiatorName=iqn.2016-06.com.iscsi-host:iscsi-host                     

[root@iscsi-host ~]# iscsiadm -m discovery -t sendtargets -p 192.168.56.20

192.168.56.20:3260,1 iqn.2016-06.com.iscsi-disks:iscsi-disks              

[root@iscsi-host ~]# iscsiadm -m node -o show                        

# BEGIN RECORD 6.2.0.874-2                                        

node.name = iqn.2016-06.com.iscsi-disks:iscsi-disks                     

node.tpgt = 1                                                      

node.startup = automatic                                            

node.leading_login = No..                                           .

# END RECORD                                                    

 

4. 从主机发起iscsi登陆

[root@iscsi-host ~]# systemctl start iscsi && systemctl enable iscsi      

 

5.发现新存储设备                 

[root@iscsi-host ~]# fdisk -                                        l

Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors              

Units = sectors of 1 * 512 = 512 bytes                                

Sector size (logical/physical): 512 bytes / 512 bytes                     

I/O size (minimum/optimal): 512 bytes / 126976 byte                    

 

6. 使用新存储设备

[root@iscsi-host ~]# mkfs.xfs /dev/sdb                                                                         

meta-data=/dev/sdb               isize=512    agcount=4, agsize=65536 blks                                     

         =                       sectsz=512   attr=2, projid32bit=1                            

         =                       crc=1        finobt=0, sparse=0                        

data     =                       bsize=4096   blocks=262144, imaxpct=25                    

         =                       sunit=0      swidth=0 blks                                    

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1                             

log      =internal log           bsize=4096   blocks=2560, version=2                                    

         =                       sectsz=512   sunit=0 blks, lazy-count=1                          

realtime =none                   extsz=4096   blocks=0, rtextents=0                                  

[root@iscsi-host ~]# mount /dev/sdb /mnt                                                       

[root@iscsi-host ~]# cd /mnt                                                               

[root@iscsi-host mnt]# ls                                                                  

[root@iscsi-host mnt]# touch abcd                                                        

[root@iscsi-host mnt]# ls                                                                  

Abcd                                                       

分类:

技术点:

相关文章: