Linux下iscsi的使用
查看是否已安装了iscsi-initiator:
[root@test\ ~]# rpm -qa |grep iscsi
iscsi-initiator-utils-6.2.0.868-0.18.el5
如果没有安装,则安装:
yum install iscsi-initiator
++ iscsi initator的配置++
iscsi initiator的配置文件主要是:
/etc/ iscsi/iscsid.conf和/etc/iscsi/ initiatorname.iscsi。
而/etc/iscsi/ initiatorname.iscsi里面只是一个iscsi的名字,一般保持默认就可以了。
主要是配置/etc/ iscsi/iscsid.conf文件。
一般应用中没有使用iSNS Server,所以iscsid.conf中的“iSNS settings”的内容不需要关注。
1. node.startup = automatic是表示当iscsi initator启动时就会自动登陆到target。
2. “CHAP Settings”主要是一些安全设置。
3. “Timeouts”部分是我们重点关注的地方:
node.session.timeo.replacement_timeout指网络出现问题,多长时间通知上层:
node.session.timeo.replacement_timeout = 120
一般我们可以把这个时间改小,防止IO被hang太长时间,如:
node.session.timeo.replacement_timeout = 3
下面两个时间是sessison登录和登出Target的超时时间,也可以适当减少。
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval指发ping包的时间间隔,
node.conn[0].timeo.noop_out_timeout为接收心跳包的超时时间
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 5
这两个时间根据需要减少,如:
node.conn[0].timeo.noop_out_interval = 1
node.conn[0].timeo.noop_out_timeout = 1
node.session.initial_login_retry_max为登录的重试次数:
node.session.initial_login_retry_max = 4
可以适当减少到 2:
node.session.initial_login_retry_max = 4
++ iscsi initator的使用++
iscsi initator是做为一个系统服务在运行,启动iscsi initator的方法如下:
service iscsi start
iscsi initator主要通过iscsiadm命令管理,我们先查看提供服务的iscsi target机器上有哪些target:
iscsiadm --mode discovery --type sendtargets --portal 192.168.5.1
然后就可以登陆某个target了,登陆成功某个target后,这个target下的硬盘也就都共享过来了:
iscsiadm --mode node --targetname iqn.2008-10.com.dc9.storage.disk3.sys1.xyz --portal 192.168.5.1:3260 --login
完成这些命令后,iscsi initator会把这些信息记录到/var/lib/iscsi目录下:
/var/lib/iscsi/send_targets记录了各个target的情况,/var/lib/iscsi/nodes记录了各个target下的nodes情况。
下次再启动iscsi initator时(service iscsi start),就会自动登陆各个target上。如果想让重新手工登陆各个target,需要把/var/lib/iscsi/send_targets目录下的内容和/var/lib/iscsi/nodes下的内容全部删除掉。
要查看各个iscsi的信息:
iscsiadm -m session -P 3
[root@ctr_db3 nodes]# iscsiadm -m session -P 3iSCSI Transport Class version 1.1-646
iscsiadm version 2.0-868
Target: iqn.2001-04.com.data_node2:storage.23
Current Portal: 192.168.173.129:3260,1
Persistent Portal: 192.168.173.129:3260,1
**********
Interface:
**********
Iface Name: default
Iface Transport: tcp
Iface Initiatorname: unknown
Iface IPaddress: default
Iface HWaddress: default
Iface Netdev: default
SID: 0
iSCSI Connection State: LOGGED IN
iSCSI Session State: Unknown
Internal iscsid Session State: NO CHANGE
++ iscsi initator的安装++
************************
Negotiated iSCSI params:
************************
HeaderDigest: None
DataDigest: None
MaxRecvDataSegmentLength: 131072
MaxXmitDataSegmentLength: 8192
FirstBurstLength: 65536
MaxBurstLength: 262144
ImmediateData: Yes
InitialR2T: Yes
MaxOutstandingR2T: 1
************************
Attached SCSI devices:
************************
Host Number: 1 State: running
scsi1 Channel 00 Id 0 Lun: 1
Attached scsi disk sde State: running
Target: iqn.2001-04.com.data_node1:storage.08
Current Portal: 192.168.172.128:3260,1
Persistent Portal: 192.168.172.128:3260,1
**********
Interface:
**********
Iface Name: default
Iface Transport: tcp
Iface Initiatorname: unknown
Iface IPaddress: default
Iface HWaddress: default
Iface Netdev: default
SID: 1
iSCSI Connection State: LOGGED IN
iSCSI Session State: Unknown
Internal iscsid Session State: NO CHANGE
************************
Negotiated iSCSI params:
************************
HeaderDigest: None
DataDigest: None
MaxRecvDataSegmentLength: 131072
MaxXmitDataSegmentLength: 8192
FirstBurstLength: 65536
MaxBurstLength: 262144
ImmediateData: Yes
InitialR2T: Yes
MaxOutstandingR2T: 1
************************
Attached SCSI devices:
************************
Host Number: 2 State: running
scsi2 Channel 00 Id 0 Lun: 1
Attached scsi disk sdf State: running
+ iscsi target的使用+
++ iscsi target的安装++
可以从源码编译安装,从http://sourceforge.net/projects/iscsitarget/下载源码包iscsitarget-0.4.17.tar.gz:
tar zxvf iscsitarget-0.4.17.tar.gz
cd iscsitarget-0.4.17
make
make install
如果想把 iscsi target 加入开机自动启动:
chkconfig --add iscsi-target
++ iscsi target的管理++
target端的配置文件主要为:/etc/ietd.conf文件,内容大致如下:
Target iqn.2001-04.com.data_node1:storage.01
Lun 1 Path=/dev/sda,Type=blockio,ScsiId=IETDSK-sda
其中内容中的Target后面是Target的名称,一般名称为:iqn.<yyyy-mm>.com.<hostname>:<storarge_name>,
其中<yyyy-mm>为年月,<hostname>为主机名,<<storarge_name>为存储的名称,可以随便起一个名字。
Lun 1是指这个设备共享出去的Lun Id,同一个Target Lun Id不能重复。Type=blockio是指定使用blockio的方式,
也可以使用fileio,如果使用了fileio,会使用操作系统的文件缓存,如果出现掉电,可能会丢数据。使用blockio则没有这个问题。
IscsiId是这个Lun的名字,随便起一个名字就可以了。
配置好/etc/ietd.conf文件后,就可以启动iscsi-target了:
service iscsi-target start
查看iscsi-target共享出去的硬盘:
cat /proc/net/iet/volume
查看客户端登陆到iscsi-target的情况:
cat /proc/net/iet/session
+ 日常维护+
++ 在iscsi中增加新硬盘++
+++ 如果能停止iscsi服务增加硬盘 +++
1.在/etc/ietd.conf文件中增加新硬盘的配置;
2.重新启动iscsi-target 服务:
service iscsi-target restart
3.在target增加的新硬盘在iscsi initator端不会被自动识别,需要到iscsi客户端机器上重新识别新加的新硬盘:
iscsiadm -m discovery -t sendtargets -p 192.168.30.51 -l
+++ 如果不能停止iscsi服务 +++
1.先查看现有的iscsi target的tid是多少:
cat /proc/net/iet/volume
tid:19 name:iqn.2001-04.com.bops_pri:storage.19
lun:0 state:0 iotype:blockio iomode:wt path:/dev/sds
tid:18 name:iqn.2001-04.com.bops_pri:storage.18
lun:0 state:0 iotype:blockio iomode:wt path:/dev/sdr
2.使用ietadm命令动态增加硬盘:
- 假设我们现在要往tid=19,target name是iqn.2001-04.com.bops_pri:storage.19增加硬盘/dev/sdv,
则执行如下命令:
ietadm --op new --tid=19 --lun=1 --params Type=blockio,Path=/dev/sdv
然后再用cat /proc/net/iet/volume检查硬盘是否被加入到iscsi-target中。
- 如果想把硬盘加到一个新建的target中,则需要先新建target,
新建target执行如下命令:
ietadm --op new --tid=20 --params Name=iqn.2001-04.com.bops_pri:storage.20
命令中的tid是比以前的最大tid值大1的值。
然后再把硬盘加到这个新建的target中:
ietadm --op new --tid=20 --lun=0 --params Type=blockio,Path=/dev/sdv
最后不要忘记在/etc/ietd.conf文件中增加新硬盘的配置。
- 如果这些命令执行失败可以使用dmesg看其它输出的错误信息:
#dmesg
....................
....................
iscsi_trgt: ioctl(250) can't find the target 20
iscsi_trgt: ioctl(250) can't find the target 20
iscsi_trgt: iscsi_volume_del(163) 13 1
iscsi_trgt: ioctl(250) can't find the target 20
iscsi_trgt: ioctl(250) can't find the target 20
iscsi_trgt: ioctl(250) can't find the target 20
iscsi_trgt: ioctl(250) can't find the target 20
++ 让iscsi服务随机器启动而自动启动 ++
方法:
chkconfig --add iscsi-target
chkconfig iscsi-target on
chkconfig --add iscsi
chkconfig iscsi on
Linux下iscsi的使用的更多相关文章
- linux 下 iscsi的简单使用
一.准备工作 1.1.(服务端和客户端都需要设置) 系统使用的是CentOS6.8 禁用防火墙: 查看状态:# service iptables status 停止:# systemctl sto ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 【转】【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
原文地址:http://www.cnblogs.com/baiboy/p/orc9.html 阅读目录 目录 检查RAC状态 检查创建的数据库 全部参考文献 相关文章 Oracle 11G RAC ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式CentOS7-1810下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式 Debian9.5下实现
iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速 ...
- Linux下搭建iSCSI共享存储
转至:https://www.linuxidc.com/Linux/2016-09/135655.htm Linux下搭建iSCSI共享存储 拓扑: 实验步骤: ------------------- ...
- 详解Linux配置iSCSI方法
iSCSI技术是在2001年初由IBM及Cisco联合制定的技术,在2003年5月微软在 Windows 2003中 开始自己正式支持iSCSI微软此举很大程度上的推动了iSCSI技术的发展.下面为大 ...
- Linux下multipath多路径配置
一.什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存 储通过了光纤交换机或者多块网卡及IP ...
- centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpfs ,nr_inodes, LVM,传统方式扩容文件系统 第七节课
centos Linux下磁盘管理 parted,df ,du,fdisk,partprobe,mkfs.ext4,mount,/etc/fstab,fsck,e2fsck,mk2efs,tmpf ...
随机推荐
- Blur 算法 (Unity 5.0 Shader)
一:简单 Blur 算法 一个像素的颜色值由其邻近的若干像素和自己的颜色值的平均值重新定义,以此达到模糊的效果. 如下图,红色的像素点的值将由它和它周围的24个像素的平均值重新定义.计算的范围一般由一 ...
- tabBar的图标不被系统渲染
navi.tabBarItem.selectedImage = [[UIImage imageNamed:imageStr]imageWithRenderingMode:UIImageRenderin ...
- php开启CURL支持
window下安装php_curl支持 1. 找到php.ini 修改extension=php_curl.dll 把前面的分号去掉2. 把 php_curl.dll libeay32.dll ssl ...
- centos 部署 .net core runtime 环境
除非在linux下开发才安装SDK,一般生产环境只需安装 runtime 1.添加 yum 源 sudo rpm --import https://packages.microsoft.com/key ...
- Web api 测试 工具WebApiTestClient
1.打开Nuget 安装 WebApiTestClient 2.在HelpPageConfig.cs 里面添加这段文字 config.SetDocumentationProvider(new Xml ...
- onmouse事件与mouse事件
1.mouse是js,onmouse是html的,其实差别就是加了一个on 2.mouse事件:鼠标移动时:1>会有冒泡的:mouseover ,mouseout 2>没有事件冒泡的: m ...
- 微信小程序面试题
小程序与原生App哪个好? 答: 小程序除了拥有公众号的低开发成本.低获客成本低以及无需下载等优势,在服务请求延时与用户使用体验是都得到了较大幅度 的提升,使得其能够承载跟复杂的服务功能以及使用户获 ...
- 小白向:web中利用request.getPart()上传文件到服务器
被文件上传弄得焦头烂额的一天,果然web中的路径和各种设置真的好讨厌= = 下面是超级小白的.及其简约的“详”解 1.明确目的: 用户将 1.txt 文件 上传到 服务器(web工程下的某个文件夹)中 ...
- windows及git常用命令
windows常用命令: 创建文件夹:md 文件夹名 创建空的文件:type nul>文件名 创建有内容文件:echo "内容">文件名 查看文件内容:type +文件 ...
- http接口服务方结合策略模式实现总结
在项目中,我们经常会使用到http+xml的接口,而且不仅仅的是一个,可能会有多个http的接口需要实时的交互.但是http接口的接收消息的公共部分是一样的,只有每个接口的报文解析和返回报文是不同的, ...