学习一个服务的过程:

1、此服务器的概述:名字,功能,特点,端口号
2、安装
3、配置文件的位置
4、服务启动关闭脚本,查看端口
5、此服务的使用方法
6、修改配置文件,实战举例
7、排错(从下到上,从内到外)

内容:

•实战:配置IP SAN多路径实现磁盘挂载高可用
•实战:在应用服务器上使用udev规则为target创建固定名字的软链接

ISCSI多路径应用

如果存储服务器到交换机只有一条线路的时候,那么一条线路出线故障,整个就没法使用了,所以多线路可以解决这个问题,避免单点故障

通过VMware模拟多路径,使用下面的拓扑:

实验环境: 63,64配置双网卡 。
服务端:63.cn IP:192.168.1.63 ens32 ,br ; IP:192.168.2.63 ens35 , vmnet4
客户端:64.cn IP:192.168.1.64 ens32 ,br ; IP:192.168.2.64 ens35 , vmnet4

将63配置成ip san,将63上的sdb1分区,通过ip san 共享出去。
服务器端: target 63
客户端: initiator 64

配置网络环境:
xuegod63 添加一块网卡:

生成ens35配置文件,配置IP ,192.168.2.63

63 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens35

63 Desktop]# ifdown ens35;ifup ens35

安装tgtd服务器:

63 Desktop]# yum install -y scsi-target-utils

准备一个磁盘: sda4

63 ~]# fdisk /dev/sda    #划分出sda4 分区
WARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').Command (m for help): pDisk /dev/sda: 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): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1301    10240000   83  Linux
/dev/sda3            1301        1428     1024000   82  Linux swap / SolarisCommand (m for help): n
Command actione   extendedp   primary partition (1-4)
p
Selected partition 4
First cylinder (1428-2610, default 1428):
Using default value 1428
Last cylinder, +cylinders or +size{K,M,G} (1428-2610, default 2610): +1GCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
63 ~]#reboot

配置target ,把sda4分区共享出去
修改配置文件

vim /etc/tgt/targets.conf   #写入以下内容
在参考这段内容并在段内容后,追加以下红色标记内容:
#<target iqn.2008-09.com.example:server.target4>76 #    direct-store /dev/sdb      # Becomes LUN 177 #    direct-store /dev/sdc      # Becomes LUN 278 #    direct-store /dev/sdd      # Becomes LUN 379 #    write-cache off80 #    vendor_id MyCompany Inc.81 #</target>
为:
<target iqn.2015-01.cn.xuegod.www:target_san1>backing-store  /dev/sda4initiator-address 192.168.1.64initiator-address 192.168.2.64   #在访问控制列表中添加一个客户端vendor_id  xuegodproduct_id   target1
</target>

注释:
default-driver iscsi #此配置文件默认全部注释,使用iscsi驱动

63 Desktop]#systemctl restart tgtd
63 Desktop]# netstat  -antup | grep 3260
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      3130/tgtd
tcp        0      0 :::3260                     :::*                        LISTEN      3130/tgtd
  1. 查看状态tgt-admin --show
63 Desktop]# tgt-admin --show
Target 1: iqn.2015-01.cn.xuegod.www:target_san1System information:Driver: iscsiState: readyI_T nexus information:LUN information:LUN: 0Type: controllerSCSI ID: IET     00010000SCSI SN: beaf10Size: 0 MB, Block size: 1Online: YesRemovable media: NoReadonly: NoBacking store type: nullBacking store path: NoneBacking store flags: LUN: 1Type: diskSCSI ID: IET     00010001SCSI SN: beaf11Size: 5372 MB, Block size: 512Online: YesRemovable media: NoReadonly: NoBacking store type: rdwrBacking store path: /dev/sda4Backing store flags: Account information:ACL information:  #允许哪些客户端可以访问192.168.1.64192.168.2.64

开机启动:

63 Desktop]# chkconfig tgtd on

配置客户端: 64

安装包:

64 ~]# rpm -ivh /mnt/Packages/iscsi-initiator-utils-6.2.0.872-34.el6.x86_64.rpm

需要先发现target存储,再启动客户端服务,才有效

64 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260
Starting iscsid:         [  OK  ]  #发现时,会自动把iscsid服务启动
192.168.1.63:3260,1 iqn.2015-01.cn.xuegod.www:target_san164 ~]#systemctl restart  scsi  # 根据/var/lib/iscsi/  中发现的信息,识别设备
Stopping iscsi:                                            [  OK  ]
Starting iscsi:                                            [  OK  ]

开机自动启动:

64 ~]# systemctl enable iscsi
64 ~]# systemctl enable iscsid

查看发现到新硬盘:

64 ~]# ls /dev/sdb
/dev/sdb

在xuegod63服务端查看链接状态

63 ~]# netstat -antup | grep 3260
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      1999/tgtd
tcp        0      0 192.168.1.63:3260           192.168.1.64:46553          ESTABLISHED 1999/tgtd
tcp        0      0 :::3260                     :::*                        LISTEN      1999/tgtd

客户端从另一条线路发现设备:

64 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.2.63
192.168.2.63:3260,1 iqn.2015-01.cn.xuegod.www:target_san1
64 ~]# rpm -ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm
64 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│   └── iqn.2015-01.cn.xuegod.www:target_san1
│       ├── 192.168.1.63,3260,1
│       │   └── default
│       └── 192.168.2.63,3260,1
│           └── default
├── send_targets
│   ├── 192.168.1.63,3260
│   │   ├── iqn.2015-01.cn.xuegod.www:target_san1,192.168.1.63,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-01.cn.xuegod.www:target_san1/192.168.1.63,3260,1
│   │   └── st_config
│   └── 192.168.2.63,3260
│       ├── iqn.2015-01.cn.xuegod.www:target_san1,192.168.2.63,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-01.cn.xuegod.www:target_san1/192.168.2.63,3260,1
│       └── st_config

识别出硬盘并查看:

64 ~]# /etc/init.d/iscsi restart
Stopping iscsi:                                            [  OK  ]
Starting iscsi:                                            [  OK  ]
64 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdc

挂载硬盘测试数据:

64 ~]# fdisk /dev/sdb   #使用sdb中所有空间,创建sdb1分区
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x337c0db1.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').Command (m for help): n
Command actione   extendedp   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1019, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1019, default 1019):
Using default value 1019Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.64 ~]# mkfs.ext4 /dev/sdb1
64 ~]# mount /dev/sdb1 /opt/
64 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.7G  3.7G  5.5G  41% /
tmpfs                 569M     0  569M   0% /dev/shm
/dev/sda1             194M   28M  157M  15% /boot
/dev/sr0              3.4G  3.4G     0 100% /mnt
/dev/sdb1             5.0G  138M  4.6G   3% /opt

注:可以看到sdb1可以正常使用

64 ~]# ls /dev/sdc*   #查看不到sdc1
/dev/sdc
64 ~]# /etc/init.d/iscsi restart   #重启iscsi服务,重新挂载存储
Stopping iscsi:                                            [  OK  ]
Starting iscsi:                                            [  OK  ]
64 ~]# ls /dev/sdc*
/dev/sdc  /dev/sdc1
64 ~]# mkdir /tmp/sdc1
64 ~]# mount /dev/sdc1 /tmp/sdc1/
64 ~]# mount /dev/sdb1 /opt  挂载报错了吧?

[root@xuegod64 ~]#  blkid /dev/sdc1 /dev/sdb1  #  对比一下,发现UUID一样的

解决方法:

64 ~]#mount -t xfs -o nouuid /dev/sdb1 /opt64 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.7G  3.7G  5.5G  41% /
tmpfs                 569M     0  569M   0% /dev/shm
/dev/sda1             194M   28M  157M  15% /boot
/dev/sr0              3.4G  3.4G     0 100% /mnt
/dev/sdc1             5.0G  138M  4.6G   3% /tmp/sdc1
/dev/sdb1             5.0G  138M  4.6G   3% /opt

实例5: 在存储客户端xuegod64上配置多路径
多路径软件Device Mapper Multipath(DM-Multipath)可以将服务器节点和存储阵列之间的多条I/O链路配置为一个单独的设备。这些I/O链路是由不同的线缆、交换机、控制器组成的SAN物理链路。Multipath将这些链路聚合在一起,生成一个单独的新的设备。
1.DM-Multipath概览:
(1)数据冗余
DM-Multipath可以实现在active/passive模式下的灾难转移。在active/passive模式下,只有一半的链路在工作,如果链路上的某一部分(线缆、交换机、控制器)出现故障,DM-Multipath就会切换到另一半链路上。
(2)提高性能
DM-Multipath也可以配置为active/active模式,从而I/O任务以round-robin的方式分布到所有的链路上去。通过配置,DM-Multipath还可以检测链路上的负载情况,动态地进行负载均衡。

安装多路经软件

64 ~]# yum install device-mapper-multipath -y

使用默认配置文件启动

64 ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf   /etc/
64 ~]# systemctl restart multipathd
64 ~]# multipath -ll    #没有输出消息。 表示出错了。

解决:把正在使用中的sdb1和sdbc1卸载了

64 ~]# umount /opt/
64 ~]# umount /tmp/sdc1/64 ~]# /etc/init.d/iscsi restart
64 ~]# systemctl restart multipathd
64 ~]# multipath -ll
3600000000e00000000010001(远程存储设备id)dm-2 xuegod(厂商) ,target1(产品ID)
size=5.0G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active   #默认使用active的链路
| `- 34:0:0:1 sdb 8:16 active ready running
`-+- policy='service-time 0' prio=1 status=enabled  #有效的链路,但不是活动链路`- 35:0:0:1 sdc 8:32 active ready running
#默认配置并不会实现负载均衡,只会实现高可用的效果。# (3600000000e00000000010001)  远程存储设备的产品信息,由于sda和sdb对应的都是远端同一个存储,所以产品信息是一样的,最后被多路经驱动发现,所以为他们生成了一个设备文件/dev/mapper/mpatha# ll /dev/mapper/mpatha*
lrwxrwxrwx 1 root root 7 1月  13 09:02 /dev/mapper/mpatha -> ../dm-2
lrwxrwxrwx 1 root root 7 1月  13 09:02 /dev/mapper/mpathap1 -> ../dm-3

如图:

实战2:修改配置文件,启动高可用负载均衡模式,并自定义多路经设备文件的名字:

vim /etc/multipath.conf

注销掉下面三行内容

请在此模版下写内容:

在74行以下插入以下内容:

multipaths {multipath {wwid   "360000000000000000e00000000010001"   #填写硬盘产品关键信息alias                   webdata   #自定义名字path_grouping_policy    multibuspath_selector           "round-robin 0"failback                 manualrr_weight               prioritiesno_path_retry           5}
}
multipaths {multipath {wwid   "360000000000000000e00000000010001"   #填写硬盘产品关键信息alias                   webdata   #自定义名字path_grouping_policy    multibuspath_selector           "round-robin 0"failback                 manualrr_weight               prioritiesno_path_retry           5}
}

iscsi多路径配置方式相关推荐

  1. iscsi多路径存储方式

    1.ISCSI多路径应用 如果存储服务器到交换机只有一条线路的时候,那么一条线路出线故障,整个就没法使用了,所以多线路可以解决这个问题,避免单点故障. 2.实验环境:  172.17.1.150,17 ...

  2. 部署 iSCSI 共享存储服务、配置Udev、多路径配置(实验)

    一.搭建iSCSI 共享存储 iSCSI技术在工作形式上分为服务端(target)与客户端(initiator). iSCSI服务端即用于存放硬盘存储资源的服务器,它作为前面创建的RAID磁盘阵列的存 ...

  3. Servlet之 url-pattern (访问路径)的三种配置方式

    访问路径的组成: 协议:ip地址:端口号/项目名/资源路径 本文讲述的就是资源路径<url-pattern> </url-pattern>的配置方式和效果,使用@WebServ ...

  4. struts+spring的配置方式总结

    现在最流行的j2ee的程序,一般都是用struts+spring+hibernate框架做的,spring+hibernate的配置方式很简单,这里就不说了,下面对struts+spring的几种配置 ...

  5. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

  6. 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )

    文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...

  7. 框架源码系列四:手写Spring-配置(为什么要提供配置的方法、选择什么样的配置方式、配置方式的工作过程是怎样的、分步骤一个一个的去分析和设计)...

    一.为什么要提供配置的方法 经过前面的手写Spring IOC.手写Spring DI.手写Spring AOP,我们知道要创建一个bean对象,需要用户先定义好bean,然后注册到bean工厂才能创 ...

  8. java c3p0 配置文件_【c3p0】 C3P0的三种配置方式以及基本配置项详解

    数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,这里只讨论程序本身负责数据源,不讨论容器管理. ---------------------------------------- ...

  9. Spring中的AOP(三)——基于Annotation的配置方式(一)

    为什么80%的码农都做不了架构师?>>>    AspectJ允许使用注解用于定义切面.切入点和增强处理,而Spring框架则可以识别并根据这些注解来生成AOP代理.Spring只是 ...

最新文章

  1. c语言子程序return,c语言return返回到哪
  2. Python sys.path详解
  3. HDU 2065 红色病毒问题(生成函数)
  4. 东北大学计算机应用基础在线作业,东北大学计算机应用基础
  5. 安装Orcale 10g SP3时报oui.exe异常错误
  6. Elasticsearch数据备份与恢复(基于HDFS)
  7. DotNetCore三大Redis客户端对比和使用心得
  8. Jmeter集合ant进行操作
  9. 移动端禁止页面缩放问题
  10. php jquery ajax实例,jQuery的$.ajax示例
  11. 【Python笔记】网络爬虫——常用框架介绍以及 Scrapy 框架使用
  12. TCP粘包和拆包的定义,产生的原因以及解决方案
  13. APUE读书笔记-13守护进程(05)
  14. C文件操作——ftell函数_ferror函数_clearerr函数_rewind函数
  15. 怎么在电脑桌面添加待办便签小助手
  16. 用C++实现文件压缩
  17. 逃离北上广:你以为回到小城市就很幸福了吗?
  18. Ubuntu16.04 安装字体库
  19. 杰理-手表-AC701-watch-添加表盘
  20. Android中开启子线程的方法和应用场景

热门文章

  1. 基于keras实现多标签分类(multi-label classification)
  2. “达观杯”文本智能处理冠军分享:深度学习文本分类
  3. python二维向量运算_python中二维数组的Elementwise与or或运算
  4. 服务器负载不高 响应慢_通俗易懂的讲透:负载均衡的原理
  5. DEV C++的OPENGL环境配置
  6. linux 运行库 编译参数,Linux/CentOS 升级C基本运行库CLIBC的注意事项(当想解决GLIBC_2.x找不到的编译问题)...
  7. mysql表文件创建_php文件创建mysql的表
  8. 命令级的python静态资源服务。
  9. 使用 ext3grep 恢复数据试验成功 笔记
  10. 用于 Windows8 的 Wijmo Charts 图表控件