Linux集群存储配置

RH436_EX集群

介绍Linux环境下集群架构,Linux开源集群软件的安装及配置使用,软件与软件之间的组合。实现高可用集群,负载均衡集群;负载均衡、高可用集群与存储集群间的多集群混合架构使用。

本次试验我使用了多种安装包:pcs为集群的基本架构,fence为警报装置,targetcli和iscsi实现远程磁盘共享,dlm和lvm2.cluster为集群中解决底层共享的逻辑卷,gfs-utiils中gfs2与clvm可扩展性集群共享存储。
实验环境中多台PC,真实机 :foundation0;低层存储:noded;三个节点:nodea、nodeb、nodec。

首先我们讲所用PC端的防火墙关掉
在/etc/selinux/config或/etc/sysconfig/selinux 配置文件内第7行的 内容改成SELINUX=diabled
[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
Permissive
并用命令修改当前的状态

安装集群架构包pcs,并将用户hacluster加入其中及修改了
hacluster的密码为redhat
[[email protected]、[email protected]、[email protected]]:
yum -y install pcs ;systemctl restart pcsd;systemctl enable pcsd;systemctl stop firewalld.service ;systemctl disable firewalld.service ;echo redhat |passwd --stdin hacluster
[[email protected]]:
[[email protected] ~]# pcs cluster auth nodea.cluster0.example.com nodeb.cluster0.example.com nodec.cluster0.example.com
Username: hacluster
Password:
nodea.cluster0.example.com: Authorized
nodeb.cluster0.example.com: Authorized
nodec.cluster0.example.com: Authorized
[[email protected]、[email protected]、[email protected]]:
systemctl restart pcsd
真机打开浏览器浏览集群架构
[[email protected] ]:
firefox https://nodea.cluster0.example.com:2224

1.png

1、用户名:hacluster
2、密码:redhat

2.png

1、集群名:cluster-1
2-4、所加入的节点:nodea.cluster0.example.comnodeb.cluster0.example.comnodec.cluster0.example.com

[[email protected] ]:
[[email protected] ~]# mkdir /virtio
[[email protected] ~]# cd /virtio/
[[email protected] virtio]# ls
[[email protected] virtio]# dd if=/dev/zero of=/virtio/vdisk1 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 14.5206 s, 73.9 MB/s
[[email protected] virtio]# cd
[[email protected] ~]# yum -y install targetcli 安装targetcli包
[[email protected] virtio]# targetcli 进入磁盘编辑

3.png

1、在/backstores/fileio下create iscsi_store /virtio/vdisk1 创建iscsi_store名接vdisk1目录
2、在/iscsi下create iqn.2016-09.com.example.storage 创建一个广播名(用来发现)
3、在/iscsi/iqn.2016-09.com.example.storage/tpg1/acls下 create iqn.2016-09.com.example:node 创建一个访问控制列表(用来允许客户端连接的密钥 node为域)
4、在/iscsi/iqn.2016-09.com.example.storage/tpg1/luns下create /backstores/fileio/iscsi_store 标识每一个设备的ID(默认从0开始)
5、会自动生成一个IP 地址
[[email protected] virtio]# systemctl restart target ;systmctl enable target

[[email protected] 、[email protected]、[email protected]]:
yum -y install iscsi*
[[email protected] ~]# vim /etc/iscsi/initiatorname.iscsi 修改配置文件
[[email protected] ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-09.com.example:node
[[email protected] ~]# scp /etc/iscsi/initiatorname.iscsi 将修改好的配置文件cp到nodeb、nodec上 [email protected]:/etc/iscsi/initiatorname.iscsi
[[email protected] ~]# scp /etc/iscsi/initiatorname.iscsi [email protected]:/etc/iscsi/initiatorname.iscsi
[[email protected] ~]# systemctl restart iscsid;systemctl enable iscsid.service
ln -s ‘/usr/lib/systemd/system/iscsid.service‘ ‘/etc/systemd/system/multi-user.target.wants/iscsid.service‘

[[email protected] ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.13
192.168.1.13:3260,1 iqn.2016-09.com.example.storage
[[email protected] ~]# iscsiadm -m discovery -t sendtargets -p 192.168.2.13
192.168.2.13:3260,1 iqn.2016-09.com.example.storage
如果上面的命令不能连接noded上的磁盘,那就最先做targetcli和iscsi后做pcs。
[[email protected] ~]# iscsiadm -m node -T iqn.2016-09.com.example.storage -p 192.168.1.13 -l
Logging in to [iface: default, target: iqn.2016-09.com.example.storage, portal: 192.168.1.13,3260] (multiple)
Login to [iface: default, target: iqn.2016-09.com.example.storage, portal: 192.168.1.13,3260] successful.
[[email protected] ~]#
[[email protected] ~]# iscsiadm -m node -T iqn.2016-09.com.example.storage -p 192.168.2.13 -l
Logging in to [iface: default, target: iqn.2016-09.com.example.storage, portal: 192.168.2.13,3260] (multiple)
Login to [iface: default, target: iqn.2016-09.com.example.storage, portal: 192.168.2.13,3260] successful.
[[email protected] ~]# fdisk -l

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000272f4

Device Boot Start End Blocks Id System
/dev/vda1 * 2048 20970332 10484142+ 83 Linux

Disk /dev/sda: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes

Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
/dev/sda和/dev/sdb为远程noded上的同一个虚拟磁盘,sda、sdb是2个接口做双网卡的备份。

[[email protected] ~]# yum -y install device-mapper-multipath 做多路径及线路预警
[[email protected] ~]# modprobe md_multipath 添加multipath模块
[[email protected] ~]# multipath -l
Sep 21 21:31:19 | /etc/multipath.conf does not exist, blacklisting all devices.
Sep 21 21:31:19 | A default multipath.conf file is located at
Sep 21 21:31:19 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Sep 21 21:31:19 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
提示报错,缺少文件
[[email protected] ~]# systemctl restart multipathd.service ;systemctl enable multipathd
[[email protected] ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf
[[email protected] ~]# multipath -l
Sep 21 21:35:25 | vda: No fc_host device for ‘host-1‘
Sep 21 21:35:25 | vda: No fc_host device for ‘host-1‘
Sep 21 21:35:25 | vda: No fc_remote_port device for ‘rport--1:-1-0‘
mpatha (3600140597279744f247488683521b4c2) dm-0 LIO-ORG ,iscsi-test
size=1.0G features=‘0‘ hwhandler=‘0‘ wp=rw
|-+- policy=‘service-time 0‘ prio=0 status=active
| - 2:0:0:0 sda 8:0 active undef running-+- policy=‘service-time 0‘ prio=0 status=enabled
`- 3:0:0:0 sdb 8:16 active undef running
提示上面信息就对了,原先的sda/sdb现在统称为mpatha名,不过mpatha名也可以自定义。
下面将mpatha定义为mymu
[[email protected] ~]# vim .bash_profile
[[email protected] ~]# cat .bashp
cat: .bashp: No such file or directory
[[email protected] ~]# cat .bash_profile
.bash_profile

#Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/lib/udev

export PATH
[[email protected] ~]# source .bash_profile
[[email protected] ~]# scp .bash_profile [email protected]:/root/.bash_profile
[email protected]‘s password:
.bash_profile 100% 190 0.2KB/s 00:00
[[email protected] ~]# scp .bash_profile root[email protected]:/root/.bash_profile
[email protected]‘s password:
.bash_profile 100% 190 0.2KB/s 00:00
[[email protected] ~]# scsi_id -u -g /dev/sda
3600140597279744f247488683521b4c2
[[email protected] ~]# scsi_id -u -g /dev/sdb
3600140597279744f247488683521b4c2
上面的修改配置文件是便于使用scsi_id命令查看UUID的信息

[[email protected] ~]# vim /etc/multipath.conf
user_friendly_name no 开启默认命名 23行

1、wwid 3600140597279744f247488683521b4c2 填写UUID 73行
2、 alias mymu 匿名 74行
[[email protected] ~]# systemctl restart multipathd.service
[[email protected] ~]# multipath -l
Sep 21 21:57:01 | vda: No fc_host device for ‘host-1‘
Sep 21 21:57:01 | vda: No fc_host device for ‘host-1‘
Sep 21 21:57:01 | vda: No fc_remote_port device for ‘rport--1:-1-0‘
mymu (3600140597279744f247488683521b4c2) dm-0 LIO-ORG ,iscsi-test
size=1.0G features=‘0‘ hwhandler=‘0‘ wp=rw
|-+- policy=‘service-time 0‘ prio=0 status=active
| - 2:0:0:0 sda 8:0 active undef running-+- policy=‘service-time 0‘ prio=0 status=enabled
`- 3:0:0:0 sdb 8:16 active undef running

[[email protected] ~]# more /proc/partitions 查看磁盘简略信息
major minor #blocks name

253 0 10485760 vda
253 1 10484142 vda1
8 0 1048576 sda
8 16 1048576 sdb
252 0 1048576 dm-0

[[email protected] ~]# yum -y install dlm lvm2-cluster.x86_64 将本地的lvm升级成lvm2-cluster 解决集群中的逻辑卷
[[email protected] ~]# vim /etc/lvm/lvm.conf 在配置文件内567行改成locking_type = 3 , 1为单机版,3为克隆模式 。或用命令lvmconf --enable-cluster自动改为3模式

[[email protected]]:
[[email protected] ~]# mkdir /etc/cluster
[[email protected] ~]# cd /etc/cluster/
[[email protected] cluster]# ls
[[email protected] cluster]# dd if=/dev/zero of=/etc/cluster/fence_xvm.key bs=4k count=1
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 0.000129868 s, 31.5 MB/s
[[email protected] cluster]# yum -y install fence-virt* 安装fence是对资源内clvm和dlm做对应
[[email protected] cluster]# fence_virtd -c
以上都回车
Interface [virbr0]: br0
回车
Replace /etc/fence_virt.conf with the above [y/N]? y
[[email protected] cluster]# ls
fence_xvm.key
[[email protected] cluster]# scp fence_xvm.key [email protected]:/etc/cluster
Warning: Permanently added ‘nodea.cluster0.example.com,172.25.0.10‘ (ECDSA) to the list of known hosts.
fence_xvm.key 100% 4096 4.0KB/s 00:00
[[email protected] cluster]# scp fence_xvm.key [email protected]:/etc/cluster
Warning: Permanently added ‘nodeb.cluster0.example.com,172.25.0.11‘ (ECDSA) to the list of known hosts.
fence_xvm.key 100% 4096 4.0KB/s 00:00
[[email protected] cluster]# scp fence_xvm.key [email protected]:/etc/cluster
Warning: Permanently added ‘nodec.cluster0.example.com,172.25.0.12‘ (ECDSA) to the list of known hosts.
fence_xvm.key 100% 4096 4.0KB/s 00:00

firefox https://nodea.cluster0.example.com:2224
add添加一个fence

5.png

1、选择fence_xvm模式
2、名字:fence-1
3、指定对应的PC:nodea,noodeb,nodec

6.png

add添加一个

7.png

1、ocf:heartbeat
2、IPaddr2模式
3、名字:vip
4、IP地址:172.25.0.110

add添加一个

8.png

1、ocf:pacemaker
2、controld模式
3、Clone√ 克隆模式
4、名字:cluster-dlm

add添加一个

9.png

1、ocf:heartbeat
2、clvm模式
3、Clone√ 克隆模式
4、名字:cluster-clvm

10.png

[[email protected]】:
[[email protected] cluster]# fdisk -l
Disk /dev/mapper/mymu: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
[[email protected] cluster]# cd /dev/mapper/
[[email protected] mapper]# ls
total 0
crw-------. 1 root root 10, 236 Sep 21 20:49 control
lrwxrwxrwx. 1 root root 7 Sep 21 21:56 mymu -> ../dm-0
[[email protected] mapper]# fdisk /dev/mapper/mymu
Device Boot Start End Blocks Id System
/dev/mapper/mymu1 8192 1851391 921600 83 Linux
[[email protected] mapper]# partprobe
[[email protected] mapper]# fdisk -l
Disk /dev/mapper/mymu: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes
Disk label type: dos
Disk identifier: 0xd8583874

       Device Boot      Start         End      Blocks   Id  System

/dev/mapper/mymu1 8192 1851391 921600 83 Linux

Disk /dev/mapper/mymu1: 943 MB, 943718400 bytes, 1843200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 4194304 bytes

[[email protected] mapper]# pvcreate /dev/mapper/mymu1
WARNING: lvmetad is running but disabled. Restart lvmetad before enabling it!
Physical volume "/dev/mapper/mymu1" successfully created
[[email protected] mapper]# vgcreate vg1 /dev/mapper/mymu1
WARNING: lvmetad is running but disabled. Restart lvmetad before enabling it!
Clustered volume group "vg1" successfully created
[[email protected] mapper]# lvcreate -L 800M -n lv1 vg1
WARNING: lvmetad is running but disabled. Restart lvmetad before enabling it!
Logical volume "lv1" created.

[[email protected] ~]# lvs
WARNING: lvmetad is running but disabled. Restart lvmetad before enabling it!
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 800.00m

[[email protected] ~]# lvs
WARNING: lvmetad is running but disabled. Restart lvmetad before enabling it!
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 800.00m

[[email protected] mapper]# yum -y install gfs2-utils.x86_64
[[email protected] mapper]# mkfs.gfs2 -p lock_dlm -t cluster-1:mygfs2 -j 4 /dev/vg1/lv1
-p:类型
-t:集群名:自定义名
-j:n+1 n为节点个数,1为保留
/dev/vg1/lv1 is a symbolic link to /dev/dm-2
This will destroy any data on /dev/dm-2
Are you sure you want to proceed? [y/n]y
Device: /dev/vg1/lv1
Block size: 4096
Device size: 0.78 GB (204800 blocks)
Filesystem size: 0.78 GB (204797 blocks)
Journals: 4
Resource groups: 6
Locking protocol: "lock_dlm"
Lock table: "cluster-1:mygfs2"
UUID: e89181f7-1251-8c4b-496e-305aeff9b780

[[email protected] ~]# mkdir /zzz
[[email protected] ~]# mount /dev/vg1/lv1 /zzz/
[[email protected] ~]# cd /zzz/
[[email protected] zzz]# ls
[[email protected] zzz]# vim zlm
[[email protected] zzz]# cat zlm
haha.................

[[email protected] ~]# mkdir /zzz
[[email protected] ~]# mount /dev/vg1/lv1 /zzz/
[[email protected] zzz]# cat /zzz/zlm
haha.................

[[email protected] ~]# mkdir /zzz
[[email protected] ~]# mount /dev/vg1/lv1 /zzz/
[email protected] zzz]# cat /zzz/zlm
haha.................
[[email protected] zzz]# vim zlm
[[email protected] zzz]# cat zlm
haha

[[email protected] zzz]# cat zlm
haha

上面文件查看说明底层文件是可以同步了,如果要对文件做对应的权限控制可以天acl或磁盘配额
acl的添加权限为mount -o remount,acl /zzz
磁盘配额的添加权限为mount -o remount,quota=on /zzz

[[email protected] ~]# umount /zzz/
[[email protected] ~]# umount /zzz/
[[email protected] ~]# umount /zzz/

[[email protected] ~]# yum -y install httpd

11.png

1、为nodea、nodeb、nodec添加了优先级
2、当前ip落在nodea上

12.png

1、添加一个资源名WEB先绑定vip

13.png

1、ocf:heartbeat
2、filesystem模式
3、绑定WEB上
4、资源名:web-file
5、磁盘:/dev/vg1/lv1
6、挂在地方:/var/www/html
7、磁盘格式:gfs2
8、权限:acl

14.png

1、systemd
2、httpd模式
3、绑定WEB
4、资源名:web-httpd

15.png

[[email protected] html]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 1.2G 8.9G 12% /
devtmpfs 904M 0 904M 0% /dev
tmpfs 921M 61M 861M 7% /dev/shm
tmpfs 921M 28M 893M 4% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/mapper/vg1-lv1 800M 518M 283M 65% /var/www/html
说明/dev/mapper/vg1-lv1自动挂在再 /var/www/html上了

[[email protected] ~]# cd /var/www/html/
[[email protected] html]# ls
zlm
[[email protected] html]# cat zlm
haha
刚才测试的文件还在,说明文件已经写到noded下的底层磁盘
[[email protected] html]# vim index.html
[[email protected] html]# cat index.html
nodea

[[email protected] html]# pcs cluster standby
*****当关掉nodea后,http的服务就红了,底层的磁盘不能跑到nodeb上。随后cluster-clvm也红 了,现在还不知道什么原因,看到此篇文章知道最后失败的原因可以留言讨论。

17.png

16.png

时间: 2024-11-08 13:19:51

Linux集群存储配置的相关文章

新书《Linux集群和自动化运维》目录

推荐序一 在全球"互联网+"的大背景下,互联网创业企业的数量如雨后春笋般大量产生并得到了快速发展!对"互联网+"最有力的支撑就是Linux运维架构师.云计算和大数据工程师,以及自动化开发工程师等! 但是,随着计算机技术的发展,企业对Linux运维人员的能力要求越来越高,这就使得很多想入门运维的新手不知所措,望而却步,甚至努力了很久却仍然徘徊在运维岗位的边缘:而有些已经工作了的运维人员也往往是疲于奔命,没有时间和精力去学习企业所需的新知识和新技能,从而使得个人的职业发

为Linux集群创建新账户,并配置hadoop集群

转自:http://blog.csdn.net/bluesky8640/article/details/6945776 之前装python.jdk.hadoop都是用的root账户,这是一个绝对的失策,linux对用户访问权限很严格,新创的hod账户根本无法启动hadoop,而root在hod模式下使用torque是不被建议的,所以只能用hod账户再重新装一遍. 创建用户.设置密码.修改用户.删除用户: useradd testuser   创建用户testuserpasswd testuser

Linux集群系列之一——集群基础概念

PHP高级工程师之LInux集群(多态主机组合起来,完成一个任务) 在这里和大家分享一下多数网络黑客常用的攻击方式及预防措施. 如有不善,多提意见(QQ:1595068971-邮箱:[email protected]) 负载均衡集群LB(提高服务的病发处理能力为根本)增加处理能力 衡量标准: 病发处理能力(一次性能够处理多少个请求) 高可用集群HA(提升服务的始终在线能力为根本,不会因为宕机而导致服务不可用)增加服务可用性 衡量标准:在线时间 / (在线时间+故障处理时间) 99%,99.9%,

linux集群系列(1) --- Linux集群系统基础

一.简介     1.1. Linux集群系统包括集群节点和集群管理器两部分. 集群节点有时简称为节点.服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作.一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件.应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件. Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点.集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,

linux集群spark环境配置

第一章 linux集群spark环境配置一 Spark下载地址; http://spark.apache.org/downloads.html 图1 下载spark 图2 选择下载地址 Spark本身用scala写的,运行在JVM之上.JAVA版本:java 6 /higher edition.Jdk已经安装(版本) Hadoop提供存储数据的持久化层版本:hadoop-1.2.1Spark和scala需要安装在master和slave上面,配置步骤相同本次搭建的master为cluster,s

Linux集群-负载均衡lvs介绍及lvs-nat实现https

一.Linux集群 Linux集群系统保护集群管理器和集群节点两部分组成.集群节点简称为节点.服务器或服务器节点,是用来提供资源,进行集群的实际工作.一般来说,它必须进行配置后才能称为集群的一部分,同时也要运行集群用到的应用程序.Linux集群管理器再将各节点捆绑在一起,它用于将任务分解到所有的节点.简单的说,就是按照某种方式把服务器连起来来完成一种特定的任务,提高服务器的响应能力. scale on 在单台主机上提高服务器性能, scale out 增加服务器的数量来提高,负载均衡的集群. 二

Linux集群概念简介

集群的概念 什么是集群? 集群是一组协同工作的服务实体,用以提供比单一服务实体更具有扩展性和可用性的服务平台.所谓服务实体说白了就是服务器.因此,多台服务器同时协同工作,在某种情况下,可以大大提升服务的能力. 集群的类型 根据不同的需求以及应用场景,集群分为三种类型: 负载均衡集群:Load Balancing,简称LB集群,它是根据调度器或者分发器(Director)中的某种调度算法,将客户端发送过来的请求转发给后台的真实服务器进行处理,从而达到负载均衡的能力.该集群主要是提高服务器的高负载服

Linux集群监控工具简介:Ganglia和Nagios

11年时候,曾经对 Ganglia 和 Nagios有一定接触,这是两个用于监视数据中心的工具.这两个工具被大量用于高性能计算(HPC)环境中,但是它们对于其他环境也具有很大的吸引力(例如云.呈现集群和托管中心).此外,两者对监视的定义也采取了不同的侧重点.Ganglia 更多地与收集度量数据并随时跟踪这些数据有关,而 Nagios 一直致力于成为一种报警机制. 真么多年过去了,这两个工具还是挺有用的.,这里有一定的介绍:http://os.51cto.com/art/201104/255361

Linux集群详解

Linux集群详解 集群或者说是群集:其目的是为了实现将多台计算机组合以来完成特定的任务,比如天气预报,大型网络游戏,这些都需要很大的运算量,单台计算机实现成本太高,而且不显示.那么就需要通过集群的方式,将废弃的或者正在使用的计算机联合起来,结合整体的力量来解决这些问题 集群类型: 1.  负载均衡集群 load blancing ,简称LB 2.  高可用性集群 high availibility,简称 HA 3.  高性能集群 high performance,简称 HP 作用: 1.  负