Ip-san 配置过程
1:SAN的定义
SAN是storage area network(存储区域网络)的简写,早期的san采用的是光纤通道技术,后期当iscsi协议出现以后,为了区分两者,就划分了IP SAN和FC SAN。FC SAN由于其昂贵的价格让许多企业退避三舍,IP SAN作为一个很好的代替产品出现在了人们的视线中。现在大部分存储设备提供支持基于TOE技术的接口,可以在硬件基础上处理TCP/IP协议。这意味着ISCSI设备可以处理速度已接近GigE、约100MB/秒的数据传输速率来处理I/O进程,其速率可与FC
SAN的相比
2:IP-SAN的操作概要
IP SAN的操作流程大体如下:
initiator作为服务器端去使用远程target上的一个lun(逻辑单元号),一个target即一个主机,一个主机上可以共享多个硬盘给initiator使用,我们把每一个硬盘叫做一个lun。为了使用iscsi协议,initiator上要封装scsi driven,iscsi driven和tcp/ip的报文通过网络发送给target上,target以此扯掉这些报文,发现对方发送的scsi协议,进而交给本地的硬盘驱动处理。所以target上不用必须装scsi的硬盘,像传统的sata盘都可以在这个架构中使用。从用户的角度来看,就像在使用本地的客户端一样,方便简单。
target --------------->Lun------------------------>Server
1:首先存储把Lun共享给server。
2:Server 去发现这个存储
3:登陆存储认证。
3:IP-SAN的配置过程
这里我们来完成一个IP SAN的实验:
192.168.1.121做我们的initator
192.168.1.122做我们的target。
硬盘:
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Target 存储端
192.168.1.122的操作流程如下:
# yum install scsi-target-utils
# rpm -ql scsi-target-utils(可以查看一些包信息)
# service tgtd restart
# chkconfig tgtd on
# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2014-05.com.qiguo.node:target1
解释:--lld指定driven,--mode指定模式,--op指定模式操作,--tid指定target_id,--targetname指定target的名称,这里使用iqn的命名方式,这里就是新增了一个target,并且target_id为1,target的名称为iqn.2014-05.com.qiguo.node:target1
# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sda
解释:这里就是在target_id为1的上面增加了一个lun,其值为1,后端的存储设备为/dev/sda。
# tgtadm --lld iscsi --mode target --op show
解释:可以查看当前的target信息和lun信息
# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.1.121
解释:target_id为1的允许IP为192.168.1.121的这台主机访问
Server 端
192.168.1.121的操作流程如下:
# yum install iscsi-initiator-utils
# echo "InitiatorName=`iscsi-iname -p iqn.2013-05.com.qiguo.initiator1`" >/etc/iscsi/initiatorname.iscsi #生成initiator的名称
# iscsiadm -m discovery -t st -p 192.168.1.122:3260 #使用的时候会自动启动iscsid进程。意思为在192.168.1.122的3260端口以sendtargets的类型寻找iscsi target设备
显示内容如下:192.168.1.122:3260,1 iqn.2014-05.com.qiguo.node:target1
# iscsiadm -m node -d 2 -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -l #-d显示debug的级别,-T指定远程主机的targetName,-l选择登陆到远程主机
# fdisk -l
如果看到两个新的硬盘,证明登陆成功,就可以对其进行分区了。
补充:
当客户端不想使用这个iscsi设备的时候,使用iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -u即可。但是这只是在当前有效,当重启以后,只要服务器端继续在共享这个设备,客户端仍然会看到这个设备。这时需要删除数据库的信息。使用iscsiadm
-m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -o delete就可以把/var/lib/iscsi/sent_targets中的发现设备信息删除。当再次重新启动的时候就不会有这个设备信息了。
当服务器端不想给某台主机共享iscsi设备的时候,可以使用tgtadm --lld iscsi --mode target --op unbind --tid 1 --initiator-address 192.168.1.121;如果不想提供某个lun的时候可以使用tgtadm --lld iscsi --mode
logicalunit --op delete --tid 1 --lun 2;如果不想提供target的时候可以使用tgtadm --lld iscsi --mode target --op delete --tid 1。
iscsi不仅仅可以使用基于ip的认证,还可以做使用用户的认证,其认证用的是CHAP(Challenge Handshake Authentication Protocol)挑战试握手认证协议。iscsi默认支持两种级别的CHAP认证。基于initiator的认证和基于target的认证。基于initiator的认证就是当initiator连接target的时候,initiator需要提供一个账号和密码供target进行认证,这种账号叫做incoming账号;基于target的认证就是当initiator连接target的时候,target需要提供一个账号和密码供initiator进行认证,这种账号叫做outcoming账号。initiator认证可以单独使用,而target认证需要同时使用initiator认证。下面再来配置一个双向认证的过程,主机仍然是上面的主机。
在target上面的操作如下:
# tgtadm --lld iscsi --mode account --op new --user qiguo --pass qiguo 创建一个incoming账号
# tgtadm --lld iscsi --mode account --op new --user qiguoin --pass qiguoin 创建一个outcomming账号
# tgtadm --lld iscsi --mode account --op bind --tid 1 --user qiguo
# tgtadm --lld iscsi --mode account --op bind --tid 1 --user qiguoin --outgoing
在initiator上面的操作如下:
编辑配置文件/etc/iscsi/iscsid.conf,修改如下几项
node.session.auth.authmethod = CHAP
node.session.auth.username = qiguo
node.session.auth.password = qiguo
node.session.auth.username_in = qiguoin
node.session.auth.password_in = qiguoin
# iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -u
# iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -o delete
# rm -rf /var/lib/iscsi/send_targets/
# iscsiadm -m discovery -t st -p 192.168.1.122:3260
# iscsiadm -m node -T iqn.2014-05.com.qiguo.node:target1 -p 192.168.1.122:3260 -l
基于CHAP的双向认证过程,需要做到以下几点:
1.CHAP不支持discovery的发现认证,所以在发现的时候需要借用到ip的认证
2.修改配置文件iscsid.conf以后,需要删除以前的发现信息,要保证/var/lib/iscsi/目录中的send_targets,nodes,ifaces目录下没有任何内容
3.要保证incoming和outcoming的账号必须保持一值,否则会登陆不了
最后还要说明一点,当服务器端重启以后,服务器端上的target和lun就会不见,要想让其有效,需要使用配置文件/etc/tgt/targets.conf,使用上面介绍的双向认证的配置文件为:
<target iqn.2014-05.com.qiguo.node:target1>
backing-store /dev/sda
backing-store /dev/sdc
initiator-address 192.168.1.121
incominguser qiguo qiguo
outgoinguser qiguoin qiguoin
</target>
这下重新启动以后,只要tgtd服务启动,就会自动保存这些配置信息了
设备组合和产品类型


Demand的需求调整等功能也可以有效降低管理维护成本,并促进管理效能的提升。
Ip-san 配置过程的更多相关文章
- 关于3G移动通信网络中用户ip的配置过程的研究(中国电信cdma2000)
在RP口对ppp过程进行研究 PPP协商过程,如下图所示: 在建立ppp过程中pdsn需要与FAAA.HAAA交互.同时在分组数据业务进行过程中这种交互更加频繁,介绍如下,分为两种情况,简单ip,移动 ...
- 基于ip san的iscsi操作执行过程
SAN它是storage area network(存储区域网络)速记,早期san光纤通道技术被用于.当迟到iscsi协议后出现,为了在这两者之间区分.它分IP SAN和FC SAN.FC SAN由于 ...
- Linux下IP SAN共享存储操作记录
一.简单介绍SAN,即存储区域网络(storage area network and SAN protocols),它是一种高速网络实现计算机与存储系统之间的数据传输.常见的分类是FC-SAN和IP- ...
- synergy 两台Windows电脑配置过程
Synergy 介绍 软件作用 Synergy 两台独立电脑,共享一套鼠标和键盘的工具, 软件原理(我自己想的) 保证两台电脑在一个局域网内,可以相互Ping通的电脑(这样才能直接通过TCP连接) 将 ...
- 图解MySQL5.5详细安装与配置过程
MySQL是一个开源的关系型数据库管理系统,原由瑞典MySQL AB公司开发,目前属于Oracle公司旗下.MySQL是目前世界上开源数据库中最受欢迎的产品之一,是应用最为广泛的开源数据库.MySQL ...
- WCF分布式开发步步为赢(2)自定义托管宿主WCF解决方案开发配置过程详解
上一节<WCF分布式框架基础概念>我们介绍了WCF服务的概念和通信框架模型,并给出了基于自定义托管服务的WCF程序的实现代码.考虑到WCF分布式开发项目中关于托管宿主服务配置和客户端添加引 ...
- FastDFS配置过程
在我的生产环境中利用FastDFS实现动静分离的方案
- [ZT]DAS\NAS\IP SAN\FC SAN之区别
DAS:服务器直接后挂存储设备,最经济的一种结构. NAS:网络上直接挂接的存储设备,其实就是处于以太网上的一台利用NFS.CIFS等网络文件系统的文件共享服务器. SAN是网络上的磁盘,NAS是一个 ...
- Mysql中主从复制的原理、配置过程以及实际案例
Mysql中主从复制的原理.配置过程以及实际案例1.什么是主从复制?原理:主从分离,什么意思呢?我们不妨画个图看看.如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Centos6 ...
随机推荐
- 167. Two Sum II - Input array is sorted【easy】
167. Two Sum II - Input array is sorted[easy] Given an array of integers that is already sorted in a ...
- MySQL和hive对比表结构脚本
#!/bin/bash source /etc/profile runlog='/tmp/zewei/check_schema_log' hive_database_schema=/tmp/hive_ ...
- 配置AutoMapper映射规则《转》
配置AutoMapper映射规则 AutoMapper是基于约定的,因此在实用映射之前,我们需要先进行映射规则的配置. public class Source { public int SomeVal ...
- ZOJ 3963 Heap Partition set维护。给一个序列,将其划分成尽量少的序列,使每一个序列满足按照顺序构造二叉树,父母的值<=孩子的值。
Heap Partition Time Limit: Seconds Memory Limit: KB Special Judge A sequence S = {s1, s2, ..., sn} i ...
- 如何通过PHP判断年份是否是闰年----两种方法
1.定义:闰年是对4取余为0,对100取余不等于0,对400取余等于0的年是闰年. 2.代码: 第一种方法:直接函数判断 $day = date('Y'); if ($day%4==0&&am ...
- git 初始化项目操作
命令行指令 Git 全局设置 git config --global user.name "你的名称" git config --global user.email "a ...
- Android开发:《Gradle Recipes for Android》阅读笔记1.4
在android studio下可以使用gradle视图运行gradle. gradle任务被分别组织在不同目录下,如android,build,install. 需要执行特定的任务只要双击任务名称. ...
- unintest基础1
import unittest class Testfunc(unittest.TestCase): def testfunc(self): print('testfunc1') def testfu ...
- C++STL容器(lower_bound,upper_bound)
C++STL容器中有三种二分查找函数,这里分享其中的两个 这两个函数其实都可以理解为不破坏数组次序的前期下能将目标元素插入到数组的第几个位置,不过在细节上两个函数有所差异 int d[6]={0,2, ...
- Cocos2d-x Lua中生命周期函数
场景(Scene)以及所有节点(Node)的生命周期事件如下:enter.进入场景时候触发.enterTransitionFinish.进入场景而且过渡动画结束时候触发.exit.退出场景时候触发 . ...