通过iscsi连接的存储设备,由于中间经过了交换机等网络设备,从主机到同一个存储设备,可能会存在多条路径. 每条路径在linux系统上都会被识别成一个设备,如果把每条路径都当成独立设备去处理的话,不同路径之间的读写 *** 作就可能会造成数据的紊乱.
multipathd可以解决上述的多路径问题,其主要原理包括:
a. 每一个scsi设备都有唯一的scsi_id,multipathd通过探测scsi_id来判断不同路径后面是不是同一个存储设备.
b. 通过内核device-mapper功能,将多条路径映射为单一的块设备,提供给文件系统使用.
c. 由于多路径的存在,multipathd可以提供负载均衡和高可用的服务.
整个环境通过两台虚拟机搭建,一台虚拟机作为iscsi存储服务器,另一台作为客户端. 两台虚拟机都配置了两张网卡,从客户端到iscsi服务器,可以形成两条路径.
通过openfiler搭建iscsi存储服务器,openfiler镜像包及部署手册,具体参考openfiler官网.
https://www.openfiler.com/community/download
部署完成后,创建了2个iscsi target:
需要安装如下软件包:
iscsi-initiator-utils:提供iscsid服务,及iscsi管理工具iscsiadm
device-mapper-multipath&device-mapper-multipath-libs:提供multipathd服务及multipath管理工具
通过iscsiadm命令探测openfiler服务器上的iscsi target,具体如下:
可以看到,openfiler返回了2个target,每个target 2条路径. 执行命令后,在/var/lib/iscsi/目录生成了如下文件:
对iscsi target执行login *** 作后,系统才能识别到设备并使用,login命令如下:
执行login命令后,识别到了sda、sdb、sdc、sdd 4个设备,查看它们的scsi_id;可以看到sda、sdc是同一设备的不同路径,sdb、sdd是同一设备的不同路径.
启动multipathd服务后,multipathd会自动识别多路径,并自动在/dev/mapper/目录下创建多路径映射后的设备.
查看multipathd工作模式,命令multipath -ll
从上面输出可以看到,multipathd默认的策略是两条路径一主一备.
使用dd往/dev/mapper/mpathb中写入数据,数据从sda写入,sdc处于备用状态
将sda网络断开,过几秒后,切换到sdc写数据
再查看sda、sdc主备情况如下:
修改multipathd path_grouping_policy、path_selector(路径选择策略),在/etc/multipath.conf配置文件中,加入如下配置修改mpathb的工作模式.
重启multipathd服务后,查看multipathd工作模式,可以看到sda sdc都处于active状态:
dd测试mpathb写入数据时的情况如下,sda sdc轮询写入,所以吞吐量一样:
inux作为免费的 *** 作系统已经广泛应用在各种服务器环境中,下面我和大家分享一下怎样利用CentOS连接iSCSI存储设备。首先在Centos系统上安装iSCSI-initiator.
一、先执行yum search iscsi-initiator在网络源中找到安装包
二、再执行安装命令:yum install iscsi-initiator-utils-devel.x86_64
部署iSCSI 设备,我用的iSCSI产品是iStorage Server,可以直接部署在windows server平台上,具体创建步骤可以查看KernSafe官网。
iStorage Server能够支持多种类型介质转换为iSCSi target,然后部署在局域网中,供服务器或其他客户端使用。
连接iSCSI target,主要命令为iscsiadm。默认iscsi使用端口3260,所以在portal后面可以不加3260.
如上图,执行iscsiadm -m discovery 是发现iscsi target。
如上图,执行iscsiadm -m node -T (target名称) -p (iscsi地址:3260) -l是登录命令,切记这里是大写-T,而上面发现是小写t,大写T后面接的是target名称。
将最后的-l 改成-u 就会断开与target的连接。
执行iscsiadm -m session 可以查看所有iscsi连接。
执行上面的命令:iscsi -m node -T target名称 -p 地址 --op update -n node.startup -v automatic 就可以设置系统在启动时自动登录。
使用iscsi存储。
登录以后,执行fdisk -l 就会列出所有磁盘包括iscsi存储。
这个存储即为iscsi磁盘,我们可以把它当做普通磁盘来 *** 作,执行fdisk /dev/sda可以将其格式化,创建分区等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)