Linux文件系统-ISCSI存储和Multipathd

Linux文件系统-ISCSI存储和Multipathd,第1张

iscsi是由scsi协议发展而来,简单来讲,iscsi是对scsi的封装,并通过以太网来进行scsi指令的传输. 传统的scsi存储设备,通过总线连接到主机,供主机使用. 通过iscsi,主机可以直接通过以太网(TCP/IP)连接使用scsi存储设备,这也是通常所说的NAS存储的一种,它提供的是块级存储服务.

通过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轮询写入,所以吞吐量一样:

1:YUM安装软件

[root@node2 Packages]# rpm -qa | grep iscsi

iscsi-initiator-utils-6.2.0.873-2.el6.x86_64

[root@node2 Packages]# rpm -qa | grep scsi

iscsi-initiator-utils-6.2.0.873-2.el6.x86_64

scsi-target-utils-1.0.24-2.el6.x86_64

[root@node2 Packages]# lsb_release -a 服务器版本

LSB

Version:

:base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch

Distributor ID: RedHatEnterpriseServer

Description: Red Hat Enterprise Linux Server release 6.4 (Santiago)

Release: 6.4

Codename: Santiago

因为这台服务器是当RAC 数据库服务器之一的,所以此服务器需要安装客户端工具和服务器端工具。

YUM软件安装可以参考我的经验:rhel6.4 yum本地yum源配置

http://jingyan.baidu.com/article/59a015e340de67f7948865bc.html

2

2:启动并设置开机自启动

[root@node2 Packages]# service tgtd start

Starting SCSI target daemon: [ OK ]

[root@node2 Packages]# chkconfig tgtd on

[root@node2 Packages]# chconfig --list | grep tgtd

-bash: chconfig: command not found

[root@node2 Packages]# chkconfig --list | grep tgtd

tgtd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

3:确定共享磁盘

[root@node2 Packages]# df -h

FilesystemSize Used Avail Use% Mounted on

/dev/sda5 629G 113G 484G 19% /

tmpfs 3.9G 167M 3.7G 5% /dev/shm

/dev/sda1 194M 33M 152M 18% /boot

/dev/sda3 194M 5.9M 178M 4% /home

/dev/sda2 289G 191M 274G 1% /share

或者使用DD创建一个大文件

dd if=/dev/zero of=/target_scsi bs=2M count=500//使用dd

共享出来的设备源可以是DD出来的一个文件,或者是/dev/sda2这样的分区。

如果使用/dev/sda2这个分区,那么/share目录将会变成只读模式

这里我采用DD出一个文件,因为VOTE表决磁盘200M左右大小。

4:编辑配置文件

[root@node2 ~]# cat /etc/tgt/targets.conf

default-driver iscsi

<target iqn.2015-07.wiscom:wiscom20>

<backing-store /targe_scsi>

scsi_id wiscom20

lun 1

</backing-store>

</target>

默认所有用户都可以访问

编写规范:

target iqn.2015-07.wiscom:wiscom20 iqn.年-月.公司名称:scsi_id号 为后期编写多路径规则方便

scsi_id wiscom20 自定义 (客户端挂载后wwid)经过试验,我的服务器必须更改scsi_id,否则多路径无法指定别名

lun 1 默认为1

注意:

如果配置完文件之后,没有重启服务器,只是重启了iscsi服务 service tgtd restart 。执行tgt-admin -s 命令查看的时候没有lun 1 设备。最终发现重启服务器才生效

5:重启服务器 --至关重要

如果是服务器中已经跑了RAC,需要将node2集群关闭再重启服务器。

在试验过程中,发现自定义scsi_id无法生效,不管怎么修改都不行。最终重启发现生效。

tgt-admin -s 或者tgtadm --lld iscsi --mode target --op show 都可以查看qin号、设备连接信息和scsi_id号

6:本机挂载--node2挂载

[root@node2 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.10.7:3260

10.10.10.7:3260,1 iqn.2015-07.wiscom:wiscom20

[root@node2 ~]# iscsiadm -m discovery -t sendtargets -p 10.10.11.7:3260

10.10.11.7:3260,1 iqn.2015-07.wiscom:wiscom20

[root@node2 ~]# iscsiadm -m node -T iqn.2015-07.wiscom:wiscom20 -p 10.10.10.7:3260 -l

Logging in to [iface: default, target: iqn.2015-07.wiscom:wiscom20, portal: 10.10.10.7,3260] (multiple)

Login to [iface: default, target: iqn.2015-07.wiscom:wiscom20, portal: 10.10.10.7,3260] successful.

[root@node2 ~]# iscsiadm -m node -T iqn.2015-07.wiscom:wiscom20 -p 10.10.11.7:3260 -l

Logging in to [iface: default, target: iqn.2015-07.wiscom:wiscom20, portal: 10.10.11.7,3260] (multiple)

Login to [iface: default, target: iqn.2015-07.wiscom:wiscom20, portal: 10.10.11.7,3260] successful.

扫描并挂载存储

如何挂载iscsi存储参考我的经验:rhel 6挂载以及卸载iscsi存储

http://jingyan.baidu.com/article/046a7b3edda53bf9c27fa9a2.html

7:查看scsi_id

scsi_id是设备唯一标识符,类似wwid

[root@node2 ~]# scsi_id -g -u -d /dev/adap

[root@node2 ~]# scsi_id -g -u -d /dev/sdap

1wiscom20

[root@node2 ~]# scsi_id -g -u -d /dev/sdaq

1wiscom20

8:节点2添加磁盘多路径

[root@node2 mapper]# vi /etc/multipath.conf

[root@node2 mapper]# service multipathd restart

ok

Stopping multipathd daemon:[ OK ]

Starting multipathd daemon:[ OK ]

/etc/multipath.conf 添加如下:

multipath {

wwid "1wiscom20"

alias crsC01

path_grouping_policy multibus

uid 1300

gid 1301

mode 666

}

在配置之前,一旦挂载就会发现/dev/mapper下已经生成了多路径磁盘mpathm,但是需要在多路径配置文件中添加以上配置生成统一别名。

磁盘多路径配置可以参考我的经验:ASM磁盘多路径及udev配置

http://jingyan.baidu.com/article/aa6a2c14f89b180d4c19c4d3.html

9:节点2 udev修改/dev/mapper/crsC01设备读写权限

[root@node2 dev]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules

添加以下内容:

KERNEL=="dm-20", OWNER="grid", GROUP="asmadmin", MODE="0666"

[root@node2 dev]# /sbin/udevadm control --reload-rules

[root@node2 dev]# /sbin/start_udev

Starting udev: [ OK ]

至此,节点2 添加磁盘成功。但是节点1还需要添加磁盘。

10:节点1挂载共享iscsi设备

节点1挂载:node1

[root@node1 nodes]# iscsiadm -m discovery -t sendtargets -p 10.10.10.7:3260

10.10.10.7:3260,1 iqn.2015-07.wiscom:wiscom20

[root@node1 nodes]# iscsiadm -m discovery -t sendtargets -p 10.10.11.7:3260

10.10.11.7:3260,1 iqn.2015-07.wiscom:wiscom20

[root@node1 nodes]# iscsiadm -m node -T iqn.2015-07.wiscom:wiscom20 -p 10.10.10.7:3260 -l

Logging in to [iface: default, target: iqn.2015-07.wiscom:wiscom20, portal: 10.10.10.7,3260] (multiple)

Login to [iface: default, target: iqn.2015-07.wiscom:wiscom20, portal: 10.10.10.7,3260] successful.

[root@node1 nodes]# iscsiadm -m node -T iqn.2015-07.wiscom:wiscom20 -p 10.10.11.7:3260 -l

Logging in to [iface: default, target: iqn.2015-07.wiscom:wiscom20, portal: 10.10.11.7,3260] (multiple)

Login to [iface: default, target: iqn.2015-07.wiscom:wiscom20, portal: 10.10.11.7,3260] successful.

10:节点1添加磁盘多路径和udev修改权限

步骤和添加内容和第8步骤、第9步骤一致。

11:查看ASM中是否识别到该设备

两个节点均需要查看

[oracle@node1 ~]$ export ORACLE_SID=+ASM1

[oracle@node1 ~]$ export ORACLE_HOME=/u01/app/11.2.0.4/grid/

[oracle@node1 ~]$ export PATH=$PATH:$ORACLE_HOME/bin

[oracle@node1 ~]$ sqlplus sys as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jul 28 16:33:01 2015

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Enter password:

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options

SQL>

SQL>

SQL>

SQL>col name for a20

SQL>col name for a20

col path for a30

col mount_status for a10

set linesize 300SQL>SQL>SQL>

SQL>

SQL>

SQL>

SQL>select name,path,failgroup,mount_status from v$asm_disk order by name

首先在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可以将其格式化,创建分区等等。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/7578603.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存