集群基础之01(存储技术、iscsi、udev动态管理、multipath多路径)

目录

1 、存储

1-1、DAS技术(直连式存储)

1-2、NAS:网络附加存储

1-3、SAN:存储区域网络

2、iscsi

2-1、target端,提供存储端

2-2.initiator端,使用存储端,运行mysql服务

2-3、授权另一个客户端访问存储:

 

3、udev:动态管理设备

4、multipath


1 、存储

1-1、DAS技术(直连式存储)

• Direct-Attached Storage的简称

• 将存储设备通过SCSI接口或光纤通道直接连接到计算机上

• 不能实现数据与其他主机的共享

• 占用服务器操作系统资源,如CPU、IO等

• 数据量越大,性能越差

1-2、NAS:网络附加存储

  1. 本质上就是共享文件夹
  2. 常见形式:nfs、cifs、samba
  3. tcp/ip :传输的是数据包

1-3、SAN:存储区域网络

通过光纤交换机、光纤路由器、光纤集线器等设备将

磁盘阵列、磁带等存储设备与相关服务器连接起来,

形成高速专网网络

  • 组成部分
  1. – 如路由器、光纤交换机
  2. – 接口:如SCSI、FC
  3. – 通信协议:如IP、SCSI,传输的是块

2、iscsi

部署iscsi

2-1、target端,提供存储端

安装软件包:
[root@san ~]#yum install targetcli
添加一块硬盘,作为后台存储------提前准备,这里我们准备了/dev/vdb
1)定义后台存储:
/> cd backstores/block
/backstores/block> create dark /dev/vdb
2)创建iqn
cd /iscsi
/iscsi> create iqn.2018-08.cn.tedu:sharedisk
3)绑定存储
/> cd iscsi/iqn.2018-08.cn.tedu:sharedisk/tpg1/luns
/iscsi/iqn.20...isk/tpg1/luns> create /backstores/block/dark

4)授权用户访问
/> cd /iscsi/iqn.2018-08.cn.tedu:sharedisk/tpg1/acls
/iscsi/iqn.20...isk/tpg1/acls> create iqn.2018-08.cn.tedu:client1

5)指定可以访问的IP地址和端口(默认不指定IP地址则是任何地址对应的主机都可访问,不指定端口则默认端口为3260)

/> iscsi/iqn.2018-01.xixi.cn:sharedisk/tpg1/portals create 192.168.4.0
6)保存配置:
cd /
saveconfig

6)查看端口是否开启
netstat -natpu|grep :3260
7)开机自动运行target
[root@san ~]# systemctl is-enabled target
[root@san ~]# systemctl enable target

2-2.initiator端,使用存储端,运行mysql服务

192.168.4.1-- mysql1
192.168.4.2  -- mysql2
1)查看软件是否按照:
rpm -q iscsi-initiator-utils--------若没有安装则安装
2)修改配在文件:
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-08.cn.tedu:client1

3)发现存储:
 iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.71 --discover

4)连接存储:

iscsiadm --mode node --targetname iqn.2018-01.xixi.cn:sharedisk --portal 192.168.1.1:3260 --login

5)设置开机自动连接存储:

[root@mysql1 ~]# vim /var/lib/iscsi/nodes/iqn.2018-08.cn.tedu\:sharedisk/192.168.4.71\,3260\,1/default

node.conn[0].startup = manual    改为     node.conn[0].startup = automatic

6)重启iscsi
systemctl restart iscsi
lsblk

7)使用存储
[root@mysql1 iscsi]# mkfs.ext4 /dev/sda

8)安装数据库
[root@mysql1 iscsi]# yum install mariadb-server

9)自动挂载:vim /etc/fstab
blkid /dev/sda
UUID="ab3c61fd-cf10-4bd0-a3fe-bbb9d8868e58"    /var/lib/mysql  ext4    defaults,_netdev 0 0    
mount -a

10)设置先存盘再强制重启,避免关机卡死

vim /etc/bashrc

alias reboot='sync; reboot -f'

11)更改所有者和所属组的权限
[root@mysql1 iscsi]# chown mysql.mysql /var/lib/mysql/

12)启动mysql服务
[root@mysql1 iscsi]# systemctl start mariadb

13)创建数据
MariaDB [(none)]> create database mydb
MariaDB [(none)]> use mydb
MariaDB [mydb]> create table t1 (id int , name varchar(30));
MariaDB [mydb]> insert into t1 values(1,'james'),(2,'jack');

本地文件系统:ext2/3/4 xfs,同时只能单台设备使用


2-3、授权另一个客户端访问存储:

2-3-1、target端:
/> iscsi/iqn.2018-08.cn.tedu:sharedisk/tpg1/acls/ create iqn.2018-08.cn.tedu:client2

2-3-2、清理工作:
1. 停止mysql服务
[root@mysql2 ~]# systemctl stop mariadb
2. 卸载/var/lib/mysql
[root@mysql2 ~]# umount /var/lib/mysql/
3. 断开与存储的连接
[root@mysql2 ~]# iscsiadm -m node -T iqn.2018-08.cn.tedu:sharedisk -p 192.168.4.71 -u

2-3-3、initiator端:
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-08.cn.tedu:client2

[root@mysql2 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.71 --discover
systemctl restart iscsi

[root@mysql2 ~]# yum install mariadb-server
[root@mysql2 ~]# mount /dev/sda /var/lib/mysql
[root@mysql2 ~]# systemctl restart mariadb

 

3、udev:动态管理设备

  • 编写udev规则,给设备改名

查看设备在内核中的属性:
[root@mysql1 ~]# udevadm info -a -p /block/sda|less
cd /etc/udev/rules.d
vim 100-ipsan.rules
SUBSYSTEM=="block",ATTR{size}=="41943040", ATTRS{vendor}=="LIO-ORG ",PROGRAM=="/usr/lib/udev/scsi_id -g -u $devnode", RESULT=="3600140590634941443445ba9cc0b8520", SYMLINK+="ipsan1"

SUBSYSTEM              子系统名字,比如sound,net

PROGRAM              可执行的外部程序,如果程序返回0值,该键则认为为真(true)

RESULT                     上一个PROGRAM调用返回的标准输出

SYMLINK              根据规则创建的字符连接名

$devnode:表示磁盘
$devpath:表示分区

重启服务,规则文件生效:
[root@mysql1 rules.d]# systemctl restart systemd-udev-trigger.service

更详细的udev知识详见:

http://www.cnblogs.com/sopost/archive/2013/01/09/2853200.html

4、multipath

  • 用途

如果客户端到服务器存储只有一条线路,那么该线路出现故障,存储就不可用了。可以再加一条线路。这个时候,客户端就会从两条线路发现同一存储设备,会给这个存储起两个名字,如sda和sdb。

客户端无论使用哪个存储都不合适。我们可以创建一个虚拟磁盘,如share1,客户端挂载share1,只要底层不要两条路径全部出现故障,share1一直可用。原理可以参考HSRP。

target服务端:
192.168.4.1
19.2168.2.1

mysql1:
192.168.4.2
192.168.2.2

从192.168.2.1这个链路发现设备
[root@mysql1 rules.d]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.1 --discover
[root@mysql1 rules.d]# systemctl restart iscsi
[root@mysql1 rules.d]# lsblk
 

安装多路径软件:

yum -y install device-mapper-multipath-libs.i686

产生配置文件:
[root@mysql1 rules.d]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc

获得设备wwid:
[root@mysql1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sda


修改配置文件:vim /etc/multipath.conf
multipaths {
       multipath {
               wwid     3600140590634941443445ba9cc0b8520
               alias    share1-----------------------------------------为该taget后端存储磁盘定义别名为share1
    }
}

启动服务:
[root@mysql1 rules.d]# systemctl restart multipathd.service

[root@mysql1 ~]# multipath -ll  -----------------查看多路径
share1 (36001405c2fa1c5e1e7e447fa8fa107d0) dm-2 LIO-ORG ,dark          
size=20G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 3:0:0:0 sdb 8:16 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 2:0:0:0 sda 8:0  active ready running

[root@mysql1 ~]# multipath -F  -----------删除多路径

multipath -v2   ---------------发现多路径

[root@mysql1 ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda             8:0    0   20G  0 disk  
└─share1        253:2    0   20G  0 mpath /var/lib/mysql
sdb             8:16   0   20G  0 disk  
└─share1        253:2    0   20G  0 mpath /var/lib/mysql

猜你喜欢

转载自blog.csdn.net/Perfect11_1/article/details/81409677