###################################################
集群和存储
大型技术架构:docker、saltstack集中管理、elk、hadoop
云计算
《大型网站技术架构》 李志慧 阿里巴巴
《分布式大型网站技术架构》
cluster 集群与存储
一、存储概述
1.1存储的目标
存储是根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问。
一方面它是数据临时或长期驻留的物理媒介。
另一方面,它是保证数据完整安全存放的方式或行为。
存储就是把这两个方面结合起来,向客户提供一套数据存放解决方案。
1.2存储技术分类
SCSI小型计算机系统接口 : small computer system interface 作为输入\输出接口,主要用于硬盘、光盘、磁带机等设备
DAS直连式存储:direct-attached storage 将存储设备通过SCSI接口或光纤通道直接连接到计算机上;不能实现数据与其他主机的共享;占用服务器操作系统资源,如CPU、IO等;数据量越大,性能越差。
NAS网络技术存储:network-attached storage 一种专用数据存储服务器,以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资;用户通过TCP/IP协议访问数据-采用标准的NFS(linux中)/HTTTP/CIFS(window-linux)等。
SAN存储区域网络:storage area network 通过光纤交换机、光纤路由器、光纤集线器等设备将磁盘阵列、磁带等存储设备与相关服务器连接起来,形成高速专网网络;
组成部分 如路由器、光纤交换机;接口如SCSI、FC;通信协议如IP、SCSI
fibre channel (传统-贵)一种适合于千兆数据传输的、成熟而安全解决方案;与传统的SCSI相比,FC提供更高的数据传输速率、更远的传输距离、更多的设备连接支持以及更稳定的性能、更简易的安装;
FC主要组件:光纤、HBA(主机总线适配置器)、FC交换机、FC光纤通道
FC交换机交换拓扑
-点到点:point-to-point 简单将两个设备互连
-已裁定的环路:arbitrated loop可多达126个设备共享一段信道或环路
-交换式拓扑(星型):switched fabric 所有设备通过光纤交换机互连
ISCSI技术(新-廉价):internet SCSI IETF制定的标准,将SCSI数据块映射为以太网数据包;是一种基于IP storage理论的新型存储技术;将存储行业广泛应用的SCSI接口技术与IP网络相结合;可以在IP网络上构建SAN;最初由Cisco和IBM开发
优势:基于IP协议技术的标准;允许网络在TCP/IP协议上传输SCSI命令;相对FC SAN,ISCSI实现的IP SAN投资更低;解决了传输效率、存储容量、兼容性、开放性、安全性等方面的问题;没有距离限制
客户端 ISCSI initiator :软件实现,成本低、性能较低 ;
ISCSI HBA:硬件实现,性能好,成本较高
存储设备端 ISCSI target
以太网交换机
二、配置iSCSI
1 准备三台虚拟机
vh01.tedu.cn eth0:192.168.4.1/2/3
/var/lib/libvirt/images/ 删重复主机
rm -rf ~/.ssh/known_hosts 删重复ip
shift+pageup/down 终端里面上下翻页
ctrl+pageup/down 终端之间切换
vim: ctrl+n 查找/补全命令
# ls /etc/sysconfig/network-scripts/ifcfg-eth0
# ^ls^cat
# jobs && kill %1
(ctrl+r +esc 搜索历史命令)
virt-viewer rh7_node2
systemctl stop firewalld
systemctl disable firewalld
配置虚机的环境
(1)设置IP地址
# ifconfig -a
# setup
# service network restart
(2)配置主机名
# setup
# hostname vh01.tedu.cn
eth0:192.168.4.1 存储端,加一块额外硬盘
(3)配置yum
[root@room9pc16 ]# tail -1 /etc/fstab
/ISO/rhel-server-6.7-x86_64-dvd.iso /var/ftp/rhel6.7 iso9660 defaults,loop 0 0
[root@room9pc16 ]# mount -a
[root@vh01 ~]# yum-config-manager --add ftp://192.168.4.254/rhel6.7
[root@vh01 ~]# echo 'gpgcheck = 0' >> /etc/yum.repos.d/192.168.4.254.repo
(4)防火墙和selinux
[root@vh01 ~]# service iptables status
[root@vh01 ~]# getenforce
2 配置iSCSI Target
iscsi命令采用IQN,全称必须全局唯一
2.1分区,注意千万不要格式化
[root@vh01 ~]# parted /dev/vdb
(parted) mklabel/mktable gpt 新硬盘,使用一次,gpt标签,支持128个主分区
(parted) mkpart primary 1M 50% 创建主分区,分区起始位置为1M,结束位置为50%。 (50% 100%)
(parted) print
(parted) quit
# parted /dev/sdb mklabel gpt
# pvcreate /dev/sdb{1,2}
# vgcreate myvg /dev/sdb{1,2}
# lvcreate -n iscsi1 –L 800M myvg
2.2安装target
[root@vh01 ~]# yum list | grep scsi
[root@vh01 ~]# yum install -y scsi-target-utils
2.3 修改配置(ctrl+n)
[root@vh01 ~]# vim /etc/tgt/targets.conf
<target iqn.2017-06.cn.tedu.nsd1702>
backing-store /dev/vdb1 //定义存储设备
initiator-address 192.168.4.2 //定义客户端ip
initiator-address 192.168.4.3
</target>
将以上三条命令加入开机启动文件
[root@svr5 ~]# vim /etc/rc.local
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2015-04.com.tarena.www:iscsi1
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/myvg/iscsi1
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.4.0/24
2.4 起服务并验证
[root@vh01 ~]# service tgtd start 立即启动服务
[root@vh01 ~]# chkconfig tgtd on 设置开机自动运行
[root@vh01 ~]# tgt-admin -s 需要能够查看到LUN1和 /dev/vdb1
3 配置iSCSI客户端
3.1 安装软件包
[root@vh02 ~]# yum -y install iscsi-initiator-utils
3.2 发现target
[root@vh02 ~]# man iscsiadm //EXAMPLE
[root@vh02 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.1 --discover
3.3 登陆target
[root@vh02 ~]# service iscsi restart
[root@vh02 ~]# lsblk 此时可以看到多出了sda设备
[root@vh02 ~]# chkconfig iscsi on 用于自动login
[root@vh02 ~]# chkconfig iscsid on 客户端守护进程
4 使用iSCSI
4.1 分区、格式化
[root@vh02 ~]# parted /dev/sda
(parted) mklabel gpt
(parted) mkpart primary 1M -1
(parted) quit
[root@vh02 ~]# mkfs.ext4 /dev/sda1
[root@vh03 ~]# partprobe
千万注意:不要在vh02和vh03上对共享存储的相同分区同时挂载,同时挂载将会导致文件系统崩溃、