• iscsi与multipath


    2016-10-01/21:07:24

    http://www.cnblogs.com/wuchanming/p/4019660.html
    http://czmmiao.iteye.com/blog/2055805

    http://lookingdream.blog.51cto.com/5177800/1825286  还有些细节要仔细看

    官网与相关标准

    http://www.open-iscsi.com/

    https://github.com/open-iscsi/open-iscsi

    http://www.rfc-base.org/rfc-3720.html

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

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

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

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

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

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

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

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

        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的登录)。

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

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

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

    LUN和控制器关系

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

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

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

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


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


    cat /sys/class/iscsi_host/host15/ipaddress  

    ------------------------------------------------------------------

    存储端:

    storage storwize v3700

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

    添加主机,port,再mapping volume

    主机端:

    centos6.8

        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

    ------------------------------------------------------

    man iscsiadm

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

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

    iscsiadm supports the iSNS (isns) or SendTargets (st) discovery type. An 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扩容
    http://wutaoblog.blog.51cto.com/80263/1180783

    一、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
    这时用户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

    多路径

    http://blog.csdn.net/orangelizq/article/details/12849413  存储的一些基本概念

    http://blog.csdn.net/cybertan/article/details/8293211

    http://blog.csdn.net/yaoyao4959/article/details/11476201

    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

    解决如下:
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=451388

    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
    这样就扩容完成了
    [root@rac02 mnt]# multipath -ll
    mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
    size=50G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=0 status=active
    | |- 10:0:0:0 sdd 8:48 failed faulty offline
    | `- 9:0:0:0  sde 8:64 failed faulty running
    `-+- policy='round-robin 0' prio=10 status=enabled
      |- 7:0:0:0  sdb 8:16 active ready  running
      `- 8:0:0:0  sdc 8:32 active ready  running
    [root@rac02 mnt]# multipath -ll
    mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
    size=50G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=0 status=enabled
    | |- 10:0:0:0 sdd 8:48 failed faulty running
    | `- 9:0:0:0  sde 8:64 failed faulty running
    `-+- policy='round-robin 0' prio=10 status=active
      |- 7:0:0:0  sdb 8:16 active ready  running
      `- 8:0:0:0  sdc 8:32 active ready  running
    
    ===================================================
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.17    0.00    1.26   14.41    0.00   84.16
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               0.00         0.00         0.00          0          0
    scd0              0.00         0.00         0.00          0          0
    dm-0              0.00         0.00         0.00          0          0
    dm-1              0.00         0.00         0.00          0          0
    dm-2              0.00         0.00         0.00          0          0
    sdb              77.00         0.00     78848.00          0      78848
    sdc              86.00         0.00     88064.00          0      88064
    sdd               0.00         0.00         0.00          0          0
    sde               0.00         0.00         0.00          0          0
    dm-3            163.00         0.00    166912.00          0     166912
    dm-4          19967.00         0.00    159736.00          0     159736
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.34    0.00    0.42    6.08    0.00   93.16
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               0.00         0.00         0.00          0          0
    scd0              0.00         0.00         0.00          0          0
    dm-0              0.00         0.00         0.00          0          0
    dm-1              0.00         0.00         0.00          0          0
    dm-2              0.00         0.00         0.00          0          0
    sdb              75.00         0.00     74768.00          0      74768
    sdc              72.00         0.00     73088.00          0      73088
    sdd               0.00         0.00         0.00          0          0
    sde               0.00         0.00         0.00          0          0
    dm-3            147.00         0.00    147856.00          0     147856
    dm-4             50.00         0.00       400.00          0        400
    
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               0.00         0.00         0.00          0          0
    scd0              0.00         0.00         0.00          0          0
    dm-0              0.00         0.00         0.00          0          0
    dm-1              0.00         0.00         0.00          0          0
    dm-2              0.00         0.00         0.00          0          0
    sdb             112.00         0.00    114688.00          0     114688
    sdc             112.00         0.00    114688.00          0     114688
    sdd               0.00         0.00         0.00          0          0
    sde               0.00         0.00         0.00          0          0
    dm-3            224.00         0.00    229376.00          0     229376
    dm-4          28800.00         0.00    230400.00          0     230400
    
    
    [root@rac02 mnt]# multipath -ll
    mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
    size=50G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=enabled
    | |- 10:0:0:0 sdd 8:48 failed ready running
    | `- 9:0:0:0  sde 8:64 failed ready running
    `-+- policy='round-robin 0' prio=10 status=active
      |- 7:0:0:0  sdb 8:16 active ready running
      `- 8:0:0:0  sdc 8:32 active ready running
    
    [root@rac02 mnt]# multipath -ll
    mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
    size=50G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=enabled
    | |- 10:0:0:0 sdd 8:48 failed ready  running
    | `- 9:0:0:0  sde 8:64 failed ready  running
    `-+- policy='round-robin 0' prio=0 status=enabled
      |- 7:0:0:0  sdb 8:16 failed faulty offline
      `- 8:0:0:0  sdc 8:32 failed faulty offline
    
    [root@rac02 mnt]# multipath -ll
    mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
    size=50G features='0' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=50 status=active
    | |- 10:0:0:0 sdd 8:48 active ready running
    | `- 9:0:0:0  sde 8:64 active ready running
    `-+- policy='round-robin 0' prio=10 status=enabled
      |- 7:0:0:0  sdb 8:16 active ready running
      `- 8:0:0:0  sdc 8:32 active ready running
  • 相关阅读:
    发送xml请求数据,返回数据怎么获取
    laravel打印sql语句
    布隆过滤器-使用场景的思考
    sql性能优化
    JS Date.parse() 函数详解
    vuejs中的watch监听属性
    JS正则test()方法
    golang实现简单线程池
    golang map实现set
    golang init函数
  • 原文地址:https://www.cnblogs.com/createyuan/p/5926276.html
Copyright © 2020-2023  润新知