当前位置: 澳门新濠3559 > 数据库 > 正文

iSCSI技术是一种新储存技术,使用TCP/IP网络来传输

时间:2019-12-09 01:06来源:数据库
ok,正常结束。 会看到如下输出: 从输出可以看到服务器地址和iqn的名称 重启iscsi服务,就可以看到在/dev/目录下多出了一个块设备,要获得这个设备的名称,输入:fdisk-l 步骤3:格式

ok,正常结束。

会看到如下输出:


从输出可以看到服务器地址和iqn的名称
重启iscsi服务,就可以看到在/dev/目录下多出了一个块设备,要获得这个设备的名称,输入:fdisk -l
步骤3:格式化并挂载iSCSI卷
可以使用fdisk对/dev/sdb进行分区,再用mkfs.ext3在/dev/sdb上创建文件系统,命令如下:
分区
# fdisk /dev/sdb
......
格式化
# mkfs.ext3 /dev/sdb1
现在已经可以像使用本地硬盘一样使用服务器存储提供的硬盘了。
步骤4:当下次启动系统时自动挂载iSCSI设备
首先,确定iscsi服务能够在系统启动时运行:
# chkconfig iscsi on
再打开/etc/fstab文件,增加如下设置:
/dev/sdb1 /mnt/iscsi ext3 _netdev 0 0
保存后退出

# tail -f /var/log/messages

iscsiadm supports the iSNS (isns) or SendTargets (st) discovery type. An

iSCSI Linux客户端的使用
在Linux下,需要安装相应的ISCSI客户端软件iscsi-initiator,安装过程如下:
步骤0:安装iSCSI客户端软件,可以通过yum,也可以通过rpm安装。
步骤1:配置iSCSI
通过vi打开/etc/iscsi/iscsid.conf:
# vi /etc/iscsi/iscsid.conf
?
设置用户名和密码(当target端设置CHAP验证时必需,如果target端没有设置CHAP验证,可以跳过):
node.session.auth.username = My_ISCSI_USR_NAME
node.session.auth.password = MyPassword
discovery.sendtargets.auth.username = My_ISCSI_USR_NAME
discovery.sendtargets.auth.password = MyPassword
步骤2:搜索targets
现在就可以通过iscsiadm命令,来搜索和登录到iSCSI的targets,同时它也可以读取和访问open-iscsi提供的数据库。如果你的ISCSI存储服务器的ip地址为 192.168.101.102,输入:
# iscsiadm -m discovery -t sendtargets -p 192.168.101.102

如果想深入了解,可以参考以下文档


Official Open iSCSI documentation
Read iscsiadm and related man pages

[root@rac1 dev]# iscsiadm -m host
tcp: [15] 192.168.30.31,[<empty>],eth0 <empty>
tcp: [16] 192.168.30.31,[<empty>],eth0 <empty>

再打开/etc/fstab文件,增加如下设置:

 

可以使用fdisk对/dev/sdd进行分区,再用mkfs.ext3在/dev/sdd上创建文件系统,命令如下:

man iscsiadm

# fdisk /dev/sdd

MPIO可允许1个iSCSI Initiator透过多个Session连入同1个iSCSI Target设备,以便利用多网卡或iSCSI HBA启用负载平衡与故障失效切换机制,也可称作Multiple Sessions per Initiator。

/dev/sdd1 /mnt/iscsi ext3 _netdev 0 0

存储端:

# iscsiadm -m discovery -t sendtargets -p 192.168.1.5
# /etc/init.d/iscsi restart

Open-iSCSI 项目

添加主机,port,再mapping volume

Step # 1:配置iSCSI

cat /sys/class/iscsi_host/host15/ipaddress  

首先,确定iscsi服务能够在系统启动时运行:

round-robin
n. [计] 循环;循环赛

Step # 4:当下次启动系统时自动挂载iSCSI设备

    Discovery (/var/lib/iscsi/send_targets)
    在 /var/lib/iscsi/send_targets 目录下包含iSCSI portals的配置信息,每个portal对应一个文件,文件名为“iSCSI portal IP,端口号”(例如172.29.88.61,3260)。

3.当下次重启系统时,自动登录target。

LUN和控制器关系

2.寻找网络上的targets(存储的服务端,通常是SAN)。

官网与相关标准

安装所需的包

SLP implementation is under development.

就如同一般外接式储存装置 (target 名称) 可以具有多个磁盘一样,我们的 target 也能够拥有数个磁盘装置的。 每个在同一个 target 上头的磁盘我们可以将它定义为逻辑单位编号 (Logical Unit Number, LUN)。

 

1.一般的网卡就能当作 iSCSI Target 但是缺点就是会消耗太多的 CPU 资源,针对这样的问题所以发展出另外两种的 iSCSI Target 网卡.
2.一种是软件的 iscsi + TOE (TOE:TCP/IP offload engine),它可以针对 TCP/IP 的封包直接在网络卡 上运算所以不会因此占用系统上的 CPU 的使用率,  
3.另外一种就是硬件式的 iSCSI + TOE. 它除了具有 TOE 还可以直接针对 iSCSI 的数据做运算.基本上它的使用上就像是一般存储设备 HBA.你可以直接在 BIOS 选项作 iSCSI 硬件开机的动作.

 

ISCSI Target 的标准命名方式为:
"Target "+ target名字 (格式如下: iqn.yyyy-mm.<reversed domain name>[:identifier] )

iqn.2001-04.com.example:storage.disk2.sys1.xyz

 

initiator名称用来唯一标识一个iSCSI Initiator端。保存此名称的配置文件为/etc/iscsi/initiatorname.iscsi
[root@rac2 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:f7977cdb666

 

 

target概念

portal概念

 

[root@www ~]# vi /etc/sysconfig/iptables
iptables -A INPUT -p tcp -s 192.168.100.0/24 --dport 3260 -j ACCEPT

yum install iscsi-initiator-utils
service iscsi start
cat /etc/iscsi/initiatorname.iscsi
/var/lib/iscsi/目录下记录着相关信息
/etc/iscsi/iscsid.conf:主要的配置文件,用来连结到 iSCSI target 的设定;
/sbin/iscsid:启动 iSCSI initiator 的主要服务程序;
/sbin/iscsiadm:用来管理 iSCSI initiator 的主要设定程序;
/etc/init.d/iscsid:让本机模拟成为 iSCSI initiater 的主要服务;
/etc/init.d/iscsi:在本机成为 iSCSI initiator 之后,启动此脚本,让我们可以登入 iSCSI target。所以 iscsid 先启动后,才能启动这个服务。为了防呆,所以 /etc/init.d/iscsi 已经写了一个启动指令, 启动 iscsi 前尚未启动 iscsid ,则会先呼叫 iscsid 才继续处理 iscsi 喔!

老实说,因为 /etc/init.d/iscsi 脚本已经包含了启动 /etc/init.d/iscsid 的步骤在里面,所以,理论上, 你只要启动 iscsi 就好啦!
[root@clientlinux ~]# chkconfig iscsid on
[root@clientlinux ~]# chkconfig iscsi on

service iscsid [status|start]
service iscsi status 查看iscisi的信息,只有在连接成功后才输出
这里可能遇到start始终没有启动成功的信息输出,请继续往下执行discovery,一般会启动iscsid。

 

 

1.发现target
iscsiadm -m discovery -t st -p ISCSI_IP
iscsiadm -m discovery -t sendtargets -p 192.168.3.16

2.查看iscsi发现记录:
iscsiadm -m node

-m node:找出目前本机上面所有侦测到的 target 信息,可能并未登入喔

3.登陆与登出target
iscsiadm -m node -T LUN_NAME -p ISCSI_IP -l

加-p或--portal与不加是有所区别的,参看target与portal的概念。一个target上有两个portal
iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node1 -p 192.168.40.101:3260 --login

iscsiadm -m node --targetname iqn.1986-03.com.ibm:2145.storage.node1 --portal 192.168.40.101:3260 --login

iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout

仅登入某部 target ,不要重新启动 iscsi 服务

-T target名称

-l  --login

[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --login
Logging in to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260] (multiple)
Logging in to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] (multiple)
Login to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260] successful.
Login to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] successful.
[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout
Logging out of session [sid: 6, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260]
Logging out of session [sid: 7, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260]
Logout of [sid: 6, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260] successful.
Logout of [sid: 7, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] successful.


[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 -p 192.168.40.104 -l
Logging in to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] (multiple)
Login to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] successful.
[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout
Logging out of session [sid: 8, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260]
Logout of [sid: 8, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] successful.
[root@rac2 ~]# 

 

iscsiadm -m node -T targetname --logout   这个时候的 target 连结还是存在的,虽然注销你还是看的到!
iscsiadm -m node -o [delete|new|update] -T targetname
选项与参数:
--logout :就是注销 target,但是并没有删除 /var/lib/iscsi/nodes/ 内的数据
-o delete:删除后面接的那部 target 链接信息 (/var/lib/iscsi/nodes/*)
-o update:更新相关的信息
-o new :增加一个新的 target 信息。

[root@rac1 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node1 --logout
Logging out of session [sid: 6, target: iqn.1986-03.com.ibm:2145.storage.node1, portal: 192.168.40.101,3260]
Logout of [sid: 6, target: iqn.1986-03.com.ibm:2145.storage.node1, portal: 192.168.40.101,3260] successful.

[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout
Logging out of session [sid: 5, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260]
Logout of [sid: 5, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260] successful.

[root@rac1 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node1 --logout
iscsiadm: No matching sessions found
[root@rac1 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout
iscsiadm: No matching sessions found

[root@rac1 ~]# iscsiadm -m node
192.168.40.104:3260,1 iqn.1986-03.com.ibm:2145.storage.node2
192.168.40.102:3260,1 iqn.1986-03.com.ibm:2145.storage.node2
192.168.40.103:3260,1 iqn.1986-03.com.ibm:2145.storage.node1
192.168.40.101:3260,1 iqn.1986-03.com.ibm:2145.storage.node1

[root@rac1 ~]# iscsiadm -m node -o delete -T iqn.1986-03.com.ibm:2145.storage.node1
[root@rac1 ~]# iscsiadm -m node -o delete -T iqn.1986-03.com.ibm:2145.storage.node2
[root@rac1 ~]# iscsiadm -m node
iscsiadm: No records found

 

 

存储LUN扩容

一、ISCSI连接方式
1.先将存储上对应LUN扩容
2.上到前端服务器重新扫描ISCSI的session
iscsiadm -m node -R    扫描所有session
iscsiadm -m node -T target -R    扫描指定的target
这时可以运行fdisk -l 查看磁盘是否扩大
如果配置了多路径,会发现ISCSI硬盘LUN对应的磁盘设备扩大了但是multipath映射的硬盘没有增大,需要重载多路径服务才可以。
centos      
1.service multipath reload
ubuntu      
1.service multipath-tools reload
iSCSI技术是一种新储存技术,使用TCP/IP网络来传输SCSI协议。这时用户fdisk -l查看会发现/dev/mapper/映射磁盘名 已经扩大
3.查看df -h发现分区还没有扩大,运行下面命令将分区扩大
resize2fs /dev/mapper/映射磁盘名
例:你在multipath中alias 的名称是test
resize2fs /dev/mapper/test

二、FC或HBA卡scsi线直连
centos
       同样先在存储上扩容LUN
       在服务器上fdisk -l发现存储的LUN没有扩大需要
       可以运行scsi-rescan --forcerescan
       扩容分区文件系统
       resize2fs /dev/对应磁盘
       如果提示没有scsi-rescan 命令需要安装sg3_utils
       yum install sg3_utils

[root@rac1 ~]# iscsiadm -m node -R
Rescanning session [sid: 2, target: iqn.1986-03.com.ibm:2145.storage.node1, portal: 192.168.40.101,3260]

 

4.开机自动:
iscsiadm -m node –T LUN_NAME -p ISCSI_IP --op update -n node.startup -v automatic

5.查看存储是否挂载上
fdisk -l

6.用parted进行分区
parted /dev/sdb
mklabel gpt     设置分区为gpt
mkpart primary 0% 100% 将空间划分为一个分区
print
quit
注:fdisk支持小于2TB的磁盘,大于2TB的磁盘需要用parted

7.格式化分区
mkfs.ext4 -T largefile /dev/sdb1
注:-T largefile对格式化大文件速度要快很多
查看磁盘的uuid
blkid /dev/sdb1
/dev/sdb1: UUID="27f0ec37-d7ab-4c93-b9e3-cd09ddd9e340" TYPE="ext4"

8.挂载硬盘
mount  -t ext4 /dev/sdb1 /data

9.开机自动挂载
先在/etc/rc.local进行登陆
vim /etc/rc.lcoal
iscsiadm -m node -T iqn.2001-05.com.equallogic:0-af1ff6-dce2985d0-95e004e6a155508d-bak-disk01 -p 192.168.3.16:3260 --login
vim /etc/fstab
UUID=27f0ec37-d7ab-4c93-b9e3-cd09ddd9e340 /data  ext4  defaults        0 0
注:default后面的一定要注意,第一个0为是否之处dump,第二个0问支持fsck,这个在启动后会fsck /dev/sdb1,而此时没有挂载导致启动失败。

 

chap认证


本组下的各个设置项主要用来指定Initiator与target验证方式。

vi /etc/iscsi/iscsid.conf
# To enable CHAP authentication set node.session.auth.authmethod
node.session.auth.authmethod = CHAP        去掉注释
# To set a CHAP username and password for initiator
node.session.auth.username = ittest              修改为网管提供的认证username/passwordnode.session.auth.password = Storageittest

上面是在我的环境中最为简单的一种CHAP(Challenge Handshake Authentication Protocol)认证方式,而且只验证的节点会话initiator端。其实iSCSI验证可以是双向的,根据服务端的设置,可以验证节点会话的target端(username_in),验证发现会话的CHAP initiator,验证发现会话的CHAP target。(节点会话node.session即登录认证,发现会话discovery.sendtargets即查看)

 

登入需验证码的节点
(1)开启认证
iscsiadm -m node -T LUN_NAME -o update --name node.session.auth.authmethod --value=CHAP
*.使用-o同--op
(2)添加用户
iscsiadm -m node -T LUN_NAME --op update --name node.session.auth.username --value=[用户名]
(3)添加密码
iscsiadm –m node –T LUN_NAME –op update –name node.session.auth.password –value=[密码]

 

 

 

[root@rac1 iscsi]# iscsiadm -m discovery -P 0
192.168.40.103:3260 via sendtargets
192.168.40.102:3260 via sendtargets
192.168.40.101:3260 via sendtargets
[root@rac1 iscsi]# iscsiadm -m discovery -P 1
SENDTARGETS:
DiscoveryAddress: 192.168.40.103,3260
DiscoveryAddress: 192.168.40.102,3260
Target: iqn.1986-03.com.ibm:2145.storage.node2
    Portal: 192.168.40.104:3260,1
        Iface Name: default
    Portal: 192.168.40.102:3260,1
        Iface Name: default
DiscoveryAddress: 192.168.40.101,3260
iSNS:
No targets found.
STATIC:
No targets found.
FIRMWARE:
No targets found.



[root@rac1 iscsi]# iscsiadm -m node -P 0
192.168.40.104:3260,1 iqn.1986-03.com.ibm:2145.storage.node2
192.168.40.102:3260,1 iqn.1986-03.com.ibm:2145.storage.node2
[root@rac1 iscsi]# iscsiadm -m node -P 1
Target: iqn.1986-03.com.ibm:2145.storage.node2
    Portal: 192.168.40.104:3260,1
        Iface Name: default
    Portal: 192.168.40.102:3260,1
        Iface Name: default



[root@rac2 ~]# iscsiadm -m session
tcp: [3] 192.168.40.103:3260,2 iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
tcp: [4] 192.168.40.101:3260,1 iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
[root@rac2 ~]# 

[root@rac1 ~]# iscsiadm -m session
tcp: [7] 192.168.40.102:3260,1 iqn.1986-03.com.ibm:2145.storage.node2 (non-flash)
tcp: [8] 192.168.40.104:3260,2 iqn.1986-03.com.ibm:2145.storage.node2 (non-flash)


[root@rac2 ~]# iscsiadm -m session -P 0
tcp: [3] 192.168.40.103:3260,2 iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
tcp: [4] 192.168.40.101:3260,1 iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
[root@rac2 ~]# iscsiadm -m session -P 1
Target: iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
    Current Portal: 192.168.40.103:3260,2
    Persistent Portal: 192.168.40.103:3260,2
        **********
        Interface:
        **********
        Iface Name: default
        Iface Transport: tcp
        Iface Initiatorname: iqn.1994-05.com.redhat:f7977cdb666
        Iface IPaddress: 192.168.30.32
        Iface HWaddress: <empty>
        Iface Netdev: <empty>
        SID: 3
        iSCSI Connection State: LOGGED IN
        iSCSI Session State: LOGGED_IN
        Internal iscsid Session State: NO CHANGE
    Current Portal: 192.168.40.101:3260,1
    Persistent Portal: 192.168.40.101:3260,1
        **********
        Interface:
        **********
        Iface Name: default
        Iface Transport: tcp
        Iface Initiatorname: iqn.1994-05.com.redhat:f7977cdb666
        Iface IPaddress: 192.168.30.32
        Iface HWaddress: <empty>
        Iface Netdev: <empty>
        SID: 4
        iSCSI Connection State: LOGGED IN
        iSCSI Session State: LOGGED_IN
        Internal iscsid Session State: NO CHANGE

 

 

多路径

  存储的一些基本概念

现在,就可以看到在/dev/目录下多出了一个块设备,要获得这个设备的名称,输入:

    Node (/var/lib/iscsi/nodes)
    在 /var/lib/iscsi/nodes 目录下,生成一个或多个以iSCSI存储服务器上的Target名命名的文件夹如iqn.2000-01.com.synology:themain-3rd.ittest,在该文件夹下有一个文件名为“iSCSI portal IP,编号” (例如172.29.88.62,3260,0)的配置参数文件default,该文件中是initiator登录target时要使用的参数,这些参数的设置是从/etc/iscsi/iscsi.conf中的参数设置继承而来的,可以通过iscsiadm对某一个参数文件进行更改(需要先注销到target的登录)。

提示:如果卷大于1TB,则可以使用nohup在后台运行mkfs.ext3:

open-iscsi包括两个守护进程iscsid和iscsi,其中iscsid是主进程,iscsi进程则主要负责根据配置在系统启动时进行发起端(Initiator)到服务端(target)的登录,建立发起端与服务端的会话,使主机在启动后即可使用通过iSCSI提供服务的存储设备。

1.通过init.d下的脚本或者手动启动iSCSI。需要修改/etc/iscsi/iscsid.conf配置文件。

iSCSI node是一个在网络上可用的SCSI设备标识符,在open-iscsi中利用术语node表示目标(target)上的门户(portal)。一个target可以有多个portal,portal 由IP地址和端口构成。

Step # 2:搜索targets

storage storwize v3700

如果使用的是Debian或者Ubuntu操作系统,可以通过如下命令:

或者

现在就可以通过iscsiadm命令,来搜索和登录到iSCSI的targets,同时它也可以读取和访问open-iscsi提供的数据库。如果你的存储服务器的ip地址为 192.168.1.5,输入:

如果能做到像TCP负载均衡设备一样的话,也需要在FC网络层增加均衡网关,通过盘阵自身均衡没有意义,因为后端是一份LUN。
每个控制器接管不同的LUN,不用切来切去的,这是不争的事实啊,难道还有疑问

设置用户名和密码(当target端设置CHAP验证时必需,如果target端没有设置CHAP验证,可以跳过):

centos6.8

或者

所谓iSCSI共享存储协议,是指一个iSCSI设备可以被多台服务器共享,而不是指一个卷可被共享。你还是要在openiler上做两个卷,分别用iscsi initiator挂载在两台服务器上。
而集群文件系统,就是指多台服务器共享一个卷。因为集群文件系统可以让多台服务器共同读写一个卷,并且不同服务器看到该卷中的数据都是同步的。而直接挂载,就会出现你所说的现象,两台服务器看到的数据不同步。

......
# mke2fs -j -m 0 -O dir_index /dev/sdd1    #格式化

iSCSI defines 3 discovery types: SendTargets, SLP, and iSNS.

[c] Fedora 7

    4  fdisk -l
    6  yum install iscsi-initiator-utils
    7  cat /etc/iscsi/initiatorname.iscsi
    8  iscsiadm -m discovery -t sendtargets -p 192.168.40.101
    9  service iscsi status
   10  iscsiadm --mode node --targetname iqn.1986-03.com.ibm:2145.storage.node1 --portal 192.168.40.101:3260 --login
   11  fdisk -l
   12  service iscsi restart
   18  service iscsi status
   21  fdisk -l
   23  iscsiadm -m node

iscsi-initiator-utils ——这个安装包由一个iSCSI协议的服务端程序,和管理这个服务端的工具组成。iSCSI通过网络层协议传输SCSI命令来读取分布的磁盘。安装这个包可以通过如下命令:

udev解决iscsi磁盘设备名称固定化

 

yum install device-mapper-multpath

[root@rac1 dev]# multipath -ll
mpathb (36005076300810df6f800000000000002) dm-2 IBM,2145
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=10 status=active
  |- 15:0:0:0 sdb 8:16 active ready running
  `- 16:0:0:0 sdc 8:32 active ready running

[root@rac1 ~]# cd /dev/mapper/
[root@rac1 mapper]# ll
total 0
crw-rw----. 1 root root 10, 58 9月  30 19:46 control
lrwxrwxrwx. 1 root root      7 10月  1 18:50 vg_rac1-LogVol00 -> ../dm-1
lrwxrwxrwx. 1 root root      7 10月  1 18:50 vg_rac1-LogVol01 -> ../dm-0
[root@rac1 mapper]# cp  /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/
[root@rac1 mapper]# multipath -ll
[root@rac1 mapper]# multipath -ll
[root@rac1 mapper]# service multipathd reload
Reloading multipathd:                                      [  OK  ]
[root@rac1 mapper]# multipath -ll
mpathb (36005076300810df6f800000000000002) dm-2 IBM,2145
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=10 status=active
  |- 15:0:0:0 sdb 8:16 active ready running
  `- 16:0:0:0 sdc 8:32 active ready running
[root@rac1 mapper]# ll
total 0
crw-rw----. 1 root root 10, 58 9月  30 19:46 control
lrwxrwxrwx. 1 root root      7 10月  2 11:13 mpathb -> ../dm-2
lrwxrwxrwx. 1 root root      7 10月  1 18:50 vg_rac1-LogVol00 -> ../dm-1
lrwxrwxrwx. 1 root root      7 10月  1 18:50 vg_rac1-LogVol01 -> ../dm-0

 

如果出现iscsi共享存储,已经丢失。但多路径中的磁盘还在,最好重载一下multipath服务。就会正常了

[root@rac1 ~]# fdisk -l
Disk /dev/mapper/36005076300810df6f800000000000002: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 32768 bytes / 32768 bytes
Disk identifier: 0x00000000

                                         Device Boot      Start         End      Blocks   Id  System
/dev/mapper/36005076300810df6f800000000000002p1               1        2611    20971519+  ee  GPT
Partition 1 does not start on physical sector boundary.

[root@rac1 ~]# service multipathd status
multipathd is stopped
[root@rac1 ~]# service multipathd start
Starting multipathd daemon:                                [  OK  ]
[root@rac1 ~]# fdisk -l
就正常了

 

 

 

 

安装multipath
yum install device-mapper-multipath

lsmod |grep multipath
dm_multipath           17724  2 dm_round_robin
dm_mod                 84209  14 dm_multipath,dm_mirror,dm_log

vi /etc/multipath.conf

#####
blacklist{
devnode "^sda"
}
defaults {
user_friendly_names yes
udev_dir /dev
path_grouping_policy multibus
failback immediate
no_path_retry fail
}
#####

 

multipath -F
multipath
# multipath -F #删除现有路径  两个新的路径就会被删除
# multipath -v2 #格式化路径   格式化后又出现

multipathd -k  进入命令交互
multipathd> help
multipath-tools v0.4.9 (04/04, 2009)
CLI commands reference:
 list|show paths
 list|show paths format $format
 list|show paths raw format $format
 list|show status
 list|show daemon
 list|show maps|multipaths
 list|show maps|multipaths status
 list|show maps|multipaths stats
 list|show maps|multipaths format $format
 list|show maps|multipaths raw format $format
 list|show maps|multipaths topology
 list|show topology
 list|show map|multipath $map topology
 list|show config
 list|show blacklist
 list|show devices
 list|show wildcards
 add path $path
 remove|del path $path
 add map|multipath $map
 remove|del map|multipath $map
 switch|switchgroup map|multipath $map group $group
 reconfigure
 suspend map|multipath $map
 resume map|multipath $map
 resize map|multipath $map
 disablequeueing map|multipath $map
 restorequeueing map|multipath $map
 disablequeueing maps|multipaths
 restorequeueing maps|multipaths
 reinstate path $path
 fail path $path
 paths count
 forcequeueing daemon
 restorequeueing daemon
 quit|exit
 map|multipath $map getprstatus
 map|multipath $map setprstatus
 map|multipath $map unsetprstatus

多路径设备扩容方法1:

在rac1上
yum install iscsi-initiator-utils
yum install device-mapper-multipath
service iscsid start
service iscsi start
iscsiadm -m discovery -t st -p 192.168.40.101
iscsiadm -m node -l
vi /etc/multipath.conf
service multipathd start
mulitpath -ll
parted /dev/mapper/mpathb
mkfs
pv
mount /dev/mapper/mpathb /mnt

在A节点上装好multipath,并配置好后,分区格式化后,挂载测试好后
在B节点上直接挂载就行了,不需要分区格式化了,可以看到之前的文件,在b上删除文件后,a上不能立即看到,a需要重新挂载一下
但是两个是不同步的,需要集群文件系统的帮助。

存储端的卷扩容以后
主机端重新扫描下,sd设备也扩容了
iscsiadm -m node -R
主机端多路径也重载一下,多路径设备也扩容了
service multipathd reload
以下是分区,文件系统的扩容,每个节点都要做一次
umount /mnt
parted /dev/mapper/mpathb
rm 1  
mkpart primary 0% 100%
quit
mount /dev/mapper/mpathbp1 /mnt
parted /dev/mapper/mpathbp1
rm 1
mkpart 0% 100%
quit
resize2fs /dev/mapper/mpathbp1
df -h
容量扩大,数据不丢失

机器重启的问题

vi /etc/fstab,加入下面行

/dev/mapper/mpathbp1 /mnt ext4 defaults 0 0

可能出现问题如下:
[root@rac01 ~]# resize2fs /dev/mapper/mpathbp1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/mpathbp1 is mounted on /mnt; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 5
Performing an on-line resize of /dev/mapper/mpathbp1 to 18349568 (4k) blocks.
resize2fs: Invalid argument While trying to add group #512

解决如下:

less /var/log/messages
umount /mnt
e2fsck /dev/mapper/mpathbp1
mount /dev/mapper/mpathbp1 /mnt
df -h
resize2fs /dev/mapper/mpathbp1
df -h
就正常了

 

 

多路径设备扩容方法2:

   91  parted /dev/mapper/mpathb
  100  pvcreate /dev/mapper/mpathbp1
  101  pvcreate /dev/mapper/mpathbp2
  103  pvdisplay
  105  vgcreate lun /dev/mapper/mpathbp1
  106  vgdisplay
  113  lvcreate -n lv1 -L 9G lun
  114  lvdisplay
  115  mkfs.ext4  /dev/lun/lv1
  117  mount /dev/mapper/lun-lv1 /mnt
  122  pvdisplay
  123  vgextend lun /dev/mapper/mpathbp2
  124  vgdisplay
  130  lvextend -n /dev/lun/lv1 -L +10G
  131  df -h
  132  fdisk -l
  133  resize2fs /dev/lun/lv1
  134  df -h
  135  pvdisplay

 

 

 

fdisk -l 看磁盘大小是否正常
fdisk /dev/sda
p,n,3,t,8e,p,w
reboot
pvcreate /dev/sda3
pvdisplay
vgdisplay
vgextend VolGroup /dev/sda3
lvdisplay
lvextend -L +4GB -n /dev/VolGroup/lv_root
resize2fs /dev/VolGroup/lv_root
reboot
这样就扩容完成了

 

# nohup mkfs.ext3 /dev/sdd1 &

iscsiadm是用来管理(更新、删除、插入、查询)iSCSI配置数据库文件的命令行工具,用户能够用它对iSCSI nodes、sessions、connections和discovery records进行一系列的操作。

# fdisk -l

在工作时,iSCSI使SCSI数据块由原来的SCSI总线连接扩展到internet上,这一过程有些产品通过硬件来实现,这种硬件产品被简称为TOE(TCP Offload Engine),随着近年来服务器芯片技术的不断发展,服务器处理能力日益强劲,目前更为普遍的是通过软件来实现SCSI数据块的封装过程。这种软件通常被称为iSCSI Initiator软件/驱动。Initiator软件可以将以太网卡虚拟为iSCSI卡,接受和发送iSCSI数据报文,通过普通以太网卡来进行网络连接,但是需要占用CPU资源。另外的TOE和HBA连接转换方式都需要专门的硬件设备来完成,虽然相对昂贵但执行效率高,也可以减轻主机CPU的负载。本文客户端采用Initiator驱动的连接方式。

# yum install iscsi-initiator-utils

iSCSI可分享的设备类型有很多,包括镜像文件(*.img)、分区(partition)、物理硬盘、raid设备、逻辑卷等,下面我们将准备其中的几种来测试,其他类型大家可以自行测试。

node.session.auth.username = My_ISCSI_USR_NAME
node.session.auth.password = MyPassword
discovery.sendtargets.auth.username = My_ISCSI_USR_NAME
discovery.sendtargets.auth.password = MyPassword

  还有些细节要仔细看

# mkdir /mnt/iscsi
# mount /dev/sdd1 /mnt/iscsi

 

ISCSI设置

iscsid进程实现iSCSI协议的控制路径以及相关管理功能。例如守护进程(指iscsid)可配置为在系统启动时基于持久化的iSCSI数据库内容,自动重新开始发现(discovery)目标设备。

保存后退出

specify the mode. op must be one of discoverydb, node, fw, host iface or session.
for node and session mode.
for discovery mode.

[a] RHEL 5

2016-10-01/21:07:24

这里:

 

# chkconfig iscsi on

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

Oct 10 12:42:20 ora9is2 kernel:   Vendor: EQLOGIC   Model: 100E-00           Rev: 3.2
Oct 10 12:42:20 ora9is2 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 05
Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd

iSCSI 服务端和客户端的通讯就是一个在网络上封包和解包的过程,在网络的一端,数据包被封装成包括TCP/IP头、iSCSI 识别包和SCSI 数据三部分内容,传输到网络另一端时,这三部分内容分别被顺序地解开。为了保证安全,iSCSI 有约定操作顺序。在首次运行时,客户端(initiator)设备需要登录到服务端(target)中。任何一个接收到没有执行登录过程的客户端的iSCSI PDU (iSCSI rotocol Data Units,iSCSI 协议数据单元)服务端都将生成一个协议错误,并且关闭连接。在关闭会话之前,服务端可能发送回一个被驳回的iSCSI PDU。

通过vi打开/etc/iscsi/iscsid.conf:

 

node.session.* target端设置的CHAP权限验证中的用户名和密码
discovery.sendtargets.* is used to set a discovery session CHAP username and password for the initiator authentication by the target(s) 搜索过程中使用的CHAP权限验证用户名和密码
也可以设置其它的选项,可以参考man下面的说明。现在开始运行iSCSI服务程序:


$ sudo apt-get install open-iscsi

Open-iSCSI是通过以下iSCSI数据库文件来实现永久配置的:

实际搜索、登录targets端的过程可能比这复杂,可以参考Ubuntu 下iscsi initiator的安装与使用

Machine Type and Model: 6099-12C
Machine Part Number:     6099L2C
Serial Number:         78B1633

: 41963520 512-byte hdwr sectors (21485 MB)
Oct 10 12:42:20 ora9is2 kernel: sdd: Write Protect is off
Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through
Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: 41963520 512-byte hdwr sectors (21485 MB)
Oct 10 12:42:20 ora9is2 kernel: sdd: Write Protect is off
Oct 10 12:42:20 ora9is2 kernel: SCSI device sdd: drive cache: write through
Oct 10 12:42:20 ora9is2 kernel:  sdd: unknown partition table
Oct 10 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi disk sdd
Oct 10 12:42:20 ora9is2 kernel: sd 3:0:0:0: Attached scsi generic sg3 type 0
Oct 10 12:42:20 ora9is2 kernel: rtc: lost some interrupts at 2048Hz.
Oct 10 12:42:20 ora9is2 iscsid: connection0:0 is operational now/dev/sdd 就是新加入的块设备

在同一个控制器上的多链路做负载均衡,在不同控制器上的多链路做故障切换。
当4G的主机port速率或者是单端口的IOPS成为瓶颈的时候,多路径负载均衡就有作用了。
在任何时刻,一个LUN只能由一个控制器来控制

以下的说明基于:

 

Debian/Ubuntu Linux

 

[d] Debian / Ubuntu Linux

主机端:

Internet SCSI(iSCSI)是一种网络协议,使用TCP/IP网络来传输SCSI协议。它是代替FC(Fibre Channel-based,光纤通道?) SAN的很好选择。你可以在Linux下方便的管理、挂载、格式化iSCSI卷,它允许通过网络访问SAN存储设备。

# mkfs.ext3 /dev/sdd1                            #格式化

挂载新分区:

Step # 3:格式化并挂载iSCSI卷

图片 1

RHEL/CentOS/Febra

4.获得iSCSI taget端的用户名、密码和存储服务器的IP地址或者主机名。

[b] CentOS 5

# /etc/init.d/iscsi start

Open-iSCSI项目实现了一个高性能、独立传输、支持多平台的iSCSI应用。Open-iSCSI分为应用层(user)和内核层(kernel)两部分。

使用iSCSI存储需要配置如下步骤:

# vi /etc/iscsi/iscsid.conf

编辑:数据库 本文来源:iSCSI技术是一种新储存技术,使用TCP/IP网络来传输

关键词: