Cluster01 - 存储技术与应用ISCSI技术应用、udev配置、NFS网络文件系统、Multipath多路径

一、存储技术与应用

1.1 存储概述

1.1.1 存储的目标

•  存储是根据不同的应用环境通过采取合理、安全、有效
的方式将数据保存到某些介质上并能保证有效的访问
•  一方面它是数据临时或长期驻留的物理媒介
•  另一方面,它是保证数据完整安全存放的方式或行为
•  存储就是把这两个方面结合起来,向客户提供一套数据存放解决方案

1.1.2 存储技术分类 [常见的存储技术有三种  DAS NAS SAN]

SCSI小型计算机系统接口

DAS:直连式存储。本地磁盘    【先分区,格式化,挂载使用】

NAS:网络附加存储。本质上就是共享文件夹   【支持TCP/IP协议,通常连在交换机一起

 应用场景:CIFS:通用互联网文件系统(samba), NFS:网络文件系统】

SAN:存储区域网络。【

FC SAN:基于光纤的存储区域网络

SAS SAN:基于sas线的存储区域网络       【 基于光纤和SAS线的存储区域网络统称为FC SAN   使用的是scsi协议 】

IP-SAN:基于网线的存储区域网络             【 基于网线的存储区域网络称为IP-SAN                    使用的是 iscsi协议 】

块级别:提供块设备(磁盘)

文件级别:提供共享文件夹

1.2 常见存储技术

1.2.1 SCSI技术

•  Small Computer System Interface的简称
•  作为输入/输出接口
•  主要用于硬盘、光盘、磁带机等设备

1.2.2 DAS技术

•  Direct-Attached Storage的简称
•  将存储设备通过SCSI接口或光纤通道直接连接到计算机上
•  不能实现数据与其他主机的共享
•  占用服务器操作系统资源,如CPU、IO等
•  数据量越大,性能越差

1.2.3 NAS技术 【tcp/ip协议】

•  Network-Attached Storage的简称
•  一种专用数据存储服务器,以数据为中心,将存储设
备与服务器彻底分离,集中管理数据,从而释放带宽、
提高性能、降低总拥有成本、保护投资
•  用户通过TCP/IP协议访问数据
–  采用标准的NFS/HTTTP/CIFS等

1.2.4 SAN技术 【iscsi协议】

•  Storage Area Network的简称
–  通过光纤交换机、光纤路由器、光纤集线器等设备将
磁盘阵列、磁带等存储设备与相关服务器连接起来,形成高速专网网络
•  组成部分
–  如路由器、光纤交换机
–  接口:如SCSI、FC
–  通信协议:如IP、SCSI

•  Fibre Channel
–  一种适合于千兆数据传输的、成熟而安全解决方案
–  与传统的SCSI相比,FC提供更高的数据传输速率、更
远的传输距离、更多的设备连接支持以及更稳定的性
能、更简易的安装

1.2.5 iSCSI技术

•  优势
–  基于IP协议技术的标准
–  允许网络在TCP/IP协议上传输SCSI命令
–  相对FC SAN,iSCSI实现的IP SAN投资更低
–  解决了传输效率、存储容量、兼容性、开放性、安全性等方面的问题
–  没有距离限制

•  客户端
–  iSCSI Initiator:软件实现,成本低、性能较低
–  iSCSI HBA:硬件实现,性能好,成本较高
•  存储设备端
–  iSCSI Target
•  以太网交换机

二、iSCSI技术应用

2.1 基础知识

2.1.1 iSCSI操作流程

•  Target端
–  选择target名称
–  安装iSCSI target
–  准备用于target的存储
–  配置target
–  启用服务

•  Initiator端
–  安装initiator
–  配置initiator并启动服务

2.1.2 iSCSI命名规范

•  建议采用IQN(iSCSI限定名称)
•  全称必须全局唯一
•  IQN格式:
iqn.<date_code>.<reversed_domain>.<string>[:
<substring>]
•  命名示例:
• iqn.2013-01.com.tarena.tech:sata.rack2.disk1

2.2 部署iSCSI服务

2.2.1 target端安装软件包 (提供存储端)

•  查询yum仓库
[root@svr1    ~]#    yum    list    |    grep    target    
•  安装
[root@svr1    ~]#    yum    -y    install    targetcli
•  查看iSCSI target信息
[root@svr1    ~]#    yum    info    targetcli

2.2.3 配置iSCSI Target

添加一块硬盘,作为后台存储

192.168.4.71 -- san  存储端
1)定义后台存储:
/> cd backstores/block
/backstores/block> create ipsan /dev/vdb
2)创建iqn
cd /iscsi
/iscsi> create iqn.2018-08.cn.tedu:sharedisk
3)授权用户访问
/> cd /iscsi/iqn.2018-08.cn.tedu:sharedisk/tpg1/acls
/iscsi/iqn.20...isk/tpg1/acls> create iqn.2018-08.cn.tedu:client1
4)绑定存储
/> cd iscsi/iqn.2018-08.cn.tedu:sharedisk/tpg1/luns
/iscsi/iqn.20...isk/tpg1/luns> create /backstores/block/ipasn
5)保存配置:
cd /
saveconfig

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

2.2.4 安装客户端软件

initiator端,使用存储端,运行mysql服务
192.168.4.72 -- mysql1
192.168.4.73  -- mysql2
1)查看软件是否按照:
rpm -q iscsi-initiator-utils
2)修改配在文件:
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-08.cn.tedu:client1    //这个名称应该从服务端targetcli下的acl进行复制

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

4)重启iscsi
systemctl restart iscsi                       //重启客户端iscsi软件让他重新读取发现的文件。
lsblk                                                 //这时可以看见共享过来的磁盘

5)使用存储
[root@mysql1 iscsi]# mkfs.ext4 /dev/sda         //给新磁盘赋与文件系统

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

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

8)修改数据库工作目录所有者所属组
[root@mysql1 iscsi]# chown mysql.mysql /var/lib/mysql/

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

10)创建数据
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,同时只能单台设备使用

授权另一个客户端访问存储:
target端:
/> iscsi/iqn.2018-08.cn.tedu:sharedisk/tpg1/acls/ create iqn.2018-08.cn.tedu:client2
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

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

三、udev配置

udev:动态管理设备文件的方法  【这条命令由内核直接提供,不需要装包】
编写udev规则,给设备改名,做出一个设备的软链接。

1.查看设备在内核中的属性:
[root@mysql1 ~]# udevadm info -a -p /sys/block/sda  |  less   

2.编写以.rules结尾的文件

cd /etc/udev/rules.d         //在这个目录下创建规则,就可以在/dev下创建磁盘设备的软连接
vim 100-ipsan.rules         //名字要以 *.rules结尾   【WWID是磁盘设备的唯一标示】
SUBSYSTEM=="block",ATTR{size}=="41943040", ATTRS{vendor}=="LIO-ORG ",PROGRAM=="/usr/lib/udev/scsi_id -g -u $devnode", RESULT=="3600140590634941443445ba9cc0b8520", SYMLINK+="ipsan1"   //给WWID为指定值的设备设置别名

ACTION==“add”,KERNEL=="vdb?",SUBSYSTEM=="block",OWNER="ceph",GROUP="ceph"    //给新发现的vdb设备设置所有者和所属组

mbr/msdos:只能分4个分区,最大支持2.2    gpt 可以分128个分区

/sys/block    设备用的

/proc            进程用的

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

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

四、NFS网络文件系统

4.1 NFS服务基础

4.1.1 文件系统的类型

•  本地文件系统
–  EXT3/4、SWAP、NTFS、......       -----> 本地磁盘
•  伪文件系统
–  /proc、/sys、......                            ----->  内存空间
•  网络文件系统
–  NFS(Network File System)             ----->  网络存储空间

4.1.2 NFS共享协议

•  Unix/Linux最基本的文件共享机制
–  1980年由SUN公司开发
–  依赖于RPC(远程过程调用)映射机制
–  存取位于远程磁盘中的文档数据,对应用程序是透明的,就好像访问本地的文件一样

4.2 配置并访问NFS共享

4.2.1 配置NFS服务器

•  主要软件包
–  nfs-utils-1.3.0-0.48.el7.x86_64
–  rpcbind-0.2.0-42.el7.x86_64
–  系统服务脚本
–  nfs、rpcbind
•  主配置文件
–  /etc/exports

   共享目录 客户机地址(参数, 参数, .. ..) .. ..

/root                   192.168.4.20(rw)    

IP地址配置:    

所有主机用 * 表示

权限设置:  

rw、ro:可读可写、只读
sync、async:同步写、异步写入
no_root_squash:保留来自客户端的root权限
all_squash:客户端权限都降为nfsnobody

1.安装rpcbind和nfs-utils软件包

[root@svr5 ~]# yum -y  install  nfs-utils rpcbind

2.配置/etc/exports文件

–  将/temp 共享给192.168.4.0,可写、保留客户端的root权限
–  将/temp 共享给192.168.2.0/24网段,只读

/temp   192.168.4.0/24(rw,no_root_squash) 192.168.2.0/24(ro)

3.启动rpcbind服务
systemctl start rpcbind

启动nfs服务
systemctl start nfs-server

查看nfs进程
ps -e | grep nfs

4.查看服务器端的共享
[root@mysql1 ~]# showmount -e 192.168.2.71

5.客户端挂载:
[root@mysql1 mnt]# mount -t nfs 192.168.4.71:/temp /mnt   【若未启用 no_root_squash,挂载后会无权限浏览(750)】

卸载:
[root@mysql1 ~]# umount /mnt

4.2.2 实现按需挂载

1.安装autofs软件

[root@mysql2 ~]#  rpm -q autofs

[root@mysql2 ~]# yum install autofs

2.修改配置文件
/etc/auto.master:
/misc   /etc/auto.misc

vim /etc/auto.misc
nfsdir          -fstype=nfs,rw          192.168.4.71:/temp

3.启动autofs服务:
[root@mysql2 ~]# systemctl start autofs

4.触发挂载:
ls /misc/nfsdir

五、多路径multipath 【主要用在存储里面】

multipath用途:

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

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

multipath:按如下要求配置好IP
san:   【存储端】
192.168.4.71
19.2168.2.71

mysql1:  【客户端】
192.168.4.72
192.168.2.72

1. 从192.168.2.71这个链路发现设备
[root@mysql1 rules.d]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.2.71 --discover
[root@mysql1 rules.d]# systemctl restart iscsi
[root@mysql1 rules.d]# lsblk                  // 此时本地有了sda和sdb

    附:如果客户端无法识别iscsi存储端设备,可以使用手工login:

iscsiadm  -m node -L all
或:iscsiadm -m node -T iqn.2018-08.cn.tedu:sharedisk -p 192.168.4.71 -l

2.客户端安装多路径软件

[root@mysql1 ~]# yum -y install device-mapper-multipath.x86_64

3.获得设备wwid
[root@mysql1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sda                  //查看设别的wwid,wwid是iscsi共享磁盘的

    或    ~]# /lib/udev/scsi_id --whitelisted --device=/dev/sda

4.产生配置文件

[root@mysql1 ~]#rpm -qf `which multipath`
[root@mysql1 ~]#rpm -ql  device-mapper-multipath

[root@mysql1 rules.d]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc
修改配置文件:
multipaths {
       multipath {
               wwid     3600140590634941443445ba9cc0b8520    //把3步骤获取的wwid填写到这里
               alias     mpatha
    }
}

5.重启multipathd服务后,将在/dev/mapper/目录下生成mpatha,如果对它分区了,第一个分区叫mpatha1
[root@mysql1 rules.d]# systemctl restart multipathd.service
[root@node2 ~]# ls /dev/mapper/

6.验证多路径配置是否正确

multipath -ll  //查看多路径
multipath -rr  //强制重新加载多路径
[root@mysql1 ~]# multipath -F  //删除多路径
multipath -v2   //发现多路径

7.访问虚拟设备,就会走两条路径去访问存储端设备。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iSCSI是一种网络存储协议,可以将远程设备的存储资源映射为本地磁盘,从而实现远程存储的访问。在Linux系统中,我们可以通过iSCSI服务来配置和管理iSCSI存储。 下面是在Linux系统中配置和管理iSCSI存储的步骤: 1. 安装iSCSI服务 在Linux系统中,我们可以使用yum命令安装iSCSI服务,命令如下: ``` yum install iscsi-initiator-utils ``` 2. 配置iSCSI服务 配置iSCSI服务需要以下步骤: (1)编辑iscsi配置文件/etc/iscsi/iscsid.conf,在文件中添加以下内容: ``` node.session.auth.authmethod = CHAP node.session.auth.username = <用户名> node.session.auth.password = <密码> ``` 其中,用户名和密码用于iSCSI的身份验证。 (2)编辑/etc/iscsi/initiatorname.iscsi文件,设置iSCSI的名称,命令如下: ``` echo "InitiatorName=iqn.2021-08.com.example:client1" > /etc/iscsi/initiatorname.iscsi ``` 其中,iqn.2021-08.com.example:client1为iSCSI的名称。 3. 连接iSCSI存储 连接iSCSI存储需要以下步骤: (1)查找iSCSI存储的地址和端口号,命令如下: ``` iscsiadm -m discovery -t st -p <存储地址> ``` 其中,存储地址为iSCSI存储的IP地址或域名。 (2)将iSCSI存储添加到发现列表中,命令如下: ``` iscsiadm -m node -o new -T <存储名> -p <存储地址>:<端口号> ``` 其中,存储名为iSCSI存储的名称,端口号为iSCSI存储的端口号。 (3)连接iSCSI存储,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -l ``` 4. 管理iSCSI存储 连接iSCSI存储成功后,我们可以使用以下命令管理iSCSI存储: (1)查看已连接的iSCSI存储,命令如下: ``` iscsiadm -m session ``` (2)断开与iSCSI存储的连接,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -u ``` (3)删除iSCSI存储,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -o delete ``` 以上就是在Linux系统中配置和管理iSCSI存储的步骤。通过iSCSI服务,我们可以将远程存储资源映射为本地磁盘,从而实现远程存储的访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值