集群存储 – 存储类型
存储分类-网络拓扑
DAS 直接附加存储
Direct-Attached Storage:直接附加存储
优点:
技术简单
传输速率最高
缺点:
存储设备与磁盘相互绑定
NAS 网络附加存储
Network Attached Storage:网络附加存储,通过网络提供一个储存的接口
优点:
技术相对简单
不要求存储设备直连本机,只需在同局域网下即可
缺点:
存储速率较慢
如:samba
SAN 存储区域网络
SAN Storage Area Network:存储区域网络
优点
存储安全性较高
存储速率较高
缺点
造价昂贵
技术难度相对较高
#将用户访问网络和存储网络分割
存储分类-存储技术
块存储
优点
可以通过 Raid / LVM 等提供保护
可独立使用
缺点
不利于共享
硬盘、ISCDI
文件存储 / 网络存储
优点
构建资金较低
可在不同主机之间实现共享存储
缺点
读写速率低,传输速率慢
分布式存储 /对象存储 / 存储桶
优点
读写效率高
可在不同主机之间共享存储
存储量级更高
缺点
造价昂贵
技术实现难度较高
MFS、RHCS
网络拓扑-存储技术
块存储 + DAS
块存储 + NAS
块存储 + SAN
文件存储 + NAS(NFS: NetworkFilesystem)
分布式存储 + SAN
ISCSI 块存储概述+部署
概述
iSCSI与SCSI区别
iSCSI( Internet Small Computer System Interface ),又称为 IP-SAN。由 IETF 提
出,并于 2003 年 2 月 11 日成为正式的标准。与传统的 SCSI 技术比较起来,iSCSI 技术
有以下三个革命性的变化:
把原来只用于本机的 SCSI 协议透过 TCP/IP 网络发送,使连接距离可作无限的地域延伸
连接的 服务器 数量无限( 原来的 SCSI-3 的上限是 15 )(可以连接但不代表无线写入)
由于是服务器架构,因此也可以实现在线扩容以至动态部署
iSCSI 的工作方式原理图
服务(设备)端 —— target
客户(应用)端 —— initiator
逻辑单元:完成资源分割
ISCSI的构建方式
环境准备
两台虚拟机
ISCSI服务器端: 192.168.190.111
添加一块新的硬盘
ISCSI客户端: 192.168.190.112
LVM磁盘整合
#ISCSI服务器端操作
pvcreate /dev/sdb #创建物理卷
vgcreate vg0 /dev/sdb #创建卷组
lvcreate -L 10G -n lv0 vg0 #创建逻辑卷
mkfs -t ext4 /dev/vg0/lv0 #格式化(mkfs.ext4)
fidsk -l
Disk /dev/mapper/vg0-lv0: 10.7 GB, 10737418240 bytes
Target 端创建 IQN 标签
多个物理磁盘组合成单独的存储卷(或磁盘),而后以分区的方案创建分区或逻辑卷,绑定为LUN,多个LUN绑定iqn标签(用户的访问端点),将LUN挂载到客户端,就编程了sda、sdcsdd每一个LUN都变成一个独立的块。
#ISCSI服务器端操作
yum -y install scsi-target-utils
service tgtd start
chkconfig tgtd on
#tgtadm是ISCSI服务器端的管理工具
#创建iqn标签
tgtadm -L iscsi -o new -m target -t 1 -T iqn.2021-01.com.hongfu:wyy
# -L指定驱动类型 -o指定操作 -m指定端(target服务器端) -t:iqn序号
#-T iqn标签 年-月-域名的反写:自定义字符串
tgtadm -L iscsi -o show -m target #查询当前的状态(iqn标签)
target 1 1: iqn.2021-01.com.hongfu:wyy #编号
LUN 0 #默认绑定的策略
#编号可以不连续,但不能重复
绑定 IQN 标签到存储设备
#tgtadm -L(指定驱动类型) iscsi -o new -m(管理的对象) logicalunit -t (tat标
#签)1 -l(逻辑存储单元的标签) 1 -b(设备名称) /dev/vg0/lv0
tgtadm -L iscsi -o new -m logicalunit -t 1 -l 6 -b /dev/vg0/lv0
tgtadm -L iscsi -o show -m target
tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.190.0/24
#-I指定访问的网段
tgtadm -L iscsi -o show -m target
客户端配置
yum -y install iscsi-initiator-utils
iscsiadm -m discovery -t st -p 192.168.190.111
# -m discovery 寻找 -t st开机扫描模式 -p 扫描的机器ip地址
iscsiadm -m node -T iqn.2021-01.com.hongfu:wyy --login #--login指定登录信息
fidsk -l #查看磁盘是否
iscsiadm -m node -T iqn.2021-01.com.hongfu:wyy --logout#--logout#解除挂载
fidsk /dev/sdb
n-p-1-w
fidsk -l
mkfs.ext4 /dev/sdb1
fidsk -l
mkdir /iscsimount
mount -t ext4 /dev/sdb1 /iscsimount
cd /iscsimount
ls
#lost+found
cat /var/log/messages >> a.txt #测试连续读写
du -sh a.txt
cat a.txt
#vi /etc/fstab
# /dev/sdb /iscsimount ext4 defaults,_netdev 0 0 (添加)
#为什么可以多用户同时挂载,不能同时读写(同时写会造成数据损坏)
在打开文件的同时也会打开一个。swap的文件锁。文件锁,只在当前系统生效。
#多客户端同时写入
GFS:具备同时挂载同时读写
RHCS套件
GFS Global/Gluster FS (GFS集群管理系统,具备分布式锁)
RGMANAGER 节点控制器,用于控制节点移除
CMAN 将每个几点组成一个集群
ISCSI
将ISCSI挂载到不同客户端,创建分布式锁,就可以同时读写
#正常情况下解除iscsi步骤
1)客户端
umount /iscsimount
iscsiadm -m node -T iqn.2021-01.com.hongfu:wyy --logout#--logout#解除挂载
#若想重新使用,直接挂载
iscsiadm -m node -T iqn.2021-01.com.hongfu:wyy --login
fdisk -l
service tgtd restart
tgtadm -L iscsi -o show -m target
#没有持久化
ISCSI持久化
实验环境
两台虚拟机
ISCSI 服务器端:192.168.190.111
添加一块新的磁盘
ISCSI 客户机端:192.168.190.112
ISCSI 服务器端
yum -y install scsi-target-utils
vim /etc/tgt/targets.conf#在target区域添加
<target iqn.2020-05.com.hongfu:sdb>
<backing-store /dev/sdb>
vendor_id wangyang
lun 6
</backing-store>
incominguser iscsiuser iscsiuser #密码认证可注释
initiator-address 192.168.190.0/24
</target>
service tgtd start
chkconfig tgtd on
tgtadm --lld iscsi --mode target --op show
ISCSI 客户端
yum -y install iscsi-initiator-utils
vim /etc/iscsi/initiatorname.iscsi
vim /etc/iscsi/iscsid.conf
#node.session.auth.authmethod = CHAP 取消注释
#node.session.auth.username = username 取消注释并修改认证用户
#node.session.auth.password = password 取消注释并修改认证密码
username
password
service iscsi start
chkconfig iscsi on
iscsiadm -m discovery -t st -p 192.168.190.111:3260
iscsiadm -m node -T iqn.2020-05.com.hongfu:sdb -p 192.168.190.111 -l
fidsk /dev/sdb
n-p-1-w
fidsk -l
mkfs.ext4 /dev/sdb1
fidsk -l
mkdir /iscsimount
mount -t ext4 /dev/sdb1 /iscsimount
cd /iscsimount
ls
cat /var/log/messages >> a.txt #测试连续读写
du -sh a.txt
cat a.txt