mysql运维管理-Heartbeat实现web服务的高可用案例及维护要点

1.DRBD介绍

Distributed Replicated Block Device (DRBD)是基于块设备在不同的高可用服务器对之间同步和镜像数据的软件,通过它可以实现在网络中的两台服务器之间基于块设备级别的实时或异步镜像或同步复制,类似于rsync+inotify这样的系统架构项目软件。只不过drbd是基于文件系统底层的,即block层级的同步,而rsync+inotify是在文件系统之上的实际物理文件同步。所以dbrd效率更高。
块设备可以是磁盘分区,LVM逻辑卷,或整块磁盘。

2.DRBD的工作原理

DRBD是linux的内核的存储层中的一个分布式存储系统,可用使用DRBD在两台Linux服务器之间共享块设备,共享文件系统和数据。类似于一个网络RAID-1的功能,在基于DBRD的高可用(HA)两台服务器主机上,当我们将数据写入到本地磁盘系统时,数据还会被实时的发送到网络中的另一台主机上并以相同的形式记录在另一个磁盘系统中,使得本地(主节点)与远程主机(备节点)的数据保持实时数据同步。这时,如果本地系统(主节点)出现故障,那么远程主机(备节点)上还会保留有一份和主节点相同的数据备份可以继续使用,不但数据不会丢失,还会提升访问数据的用户的体验。更多详细请查看dbrd官方网站http://www.dbrd.org/
drbd工作原理图:

3.DRBD的复制模式

协议A:

异步复制协议。一旦本地磁盘写入已经完成,数据包已在发送队列中,则写被认为是完成的。在一个节点发生故障时,可能发生数据丢失,因为被写入到远程节点上的数据可能仍在发送队列。尽管,在故障转移节点上的数据是一致的,但没有及时更新。这通常是用于地理上分开的节点

协议B:

内存同步(半同步)复制协议。一旦本地磁盘写入已完成且复制数据包达到了对等节点则认为写在主节点上被认为是完成的。数据丢失可能发生在参加的两个节点同时故障的情况下,因为在传输中的数据可能不会被提交到磁盘。

协议C:

同步复制协议。只有在本地和远程节点的磁盘已经确认了写操作完成,写才被认为完成。没有任何数据丢失,所以这是一个群集节点的流行模式,但I / O吞吐量依赖于网络带宽。

一般使用协议C,但选择C协议将影响流量,从而影响网络时延。为了数据可靠性,我们在生产环境使用时须慎重选项使用哪一种协议。

4.DBRD的企业应用场景

生产场景中drbd常用于基于高可用服务器之间的数据同步解决方案。

例如:heartbeat+drbd+nfs/mfs/gfs,heartbeat+drbd+mysql/oracle等。实际上drbd可以配合任意需要数据同步的所有服务的应用场景。

5.常见的数据同步工具

(1)rsync(sersync,inotify,lsyncd)

(2)scp

(3)nc

(4)nfs(网络文件系统)

(5)union双机同步

(6)csync2多机同步

(7)软件的自身同步机制(mysql,oracle,mongdb,ttserver,redis..)文件放到数据库,同步到从库,再把文件拿出来。

(8)Drbd

6.部署Drbd服务需求描述

6.1 业务需求描述

业务需求可以结合前面配置的heartbeat来搭建dbrd服务,hearbeat的安装和部署我前面的文章已经写了。主服务器为heartrbeat-1-130,从服务器为heartbeat-1-129。

6.2 DRBD部署结构图

(1)Drbd服务通过直连线或以太网实时互相数据同步。

(2)两台存储服务器互相备份,正常情况下两端各提供一个主分区供NFS使用。

(3)存储服务器之间,存储服务和交换机之间都是双千兆网卡绑定。

(4)应用服务器通过NFS访问存储。

7.DRBD软件安装实验准备

7.1 操作系统:

CentOS-6.8-x86_64

7.2 DRBD服务主机资源准备

主服务器A:

主机名:heartbeat-1-130

eth0网卡地址:192.168.1.130(管理IP)

eth1网卡地址:10.0.10.4 (心跳IP)

从服务器B:

主机名:heartbeat-1-129

eth0网卡地址:192.168.1.129(管理IP)

eth1网卡地址:10.0.10.5(心跳IP)

虚拟VIP:

虚拟VIP在主服务器heartbeat-1-130上

VIP:192.168.1.131

需要修改主机名,关闭防火墙和selinux这些准备工作和heartbeat一样,我前面的安装heartbeat的文章有讲,这里就不讲了。就用安装heartbeat的那两台机器,主服务器heartbeat-1-130,从服务器heartbeat-1-129。

7.3 创建可用分区

Drbd是基于分区的磁盘逻辑卷的,没有可用的分区肯定不行。我们先把heartbeat-1-130和heartbeat-1-129两个虚拟机关机,然后在主节点heartbeat-1-130上添加一块1g的硬盘,在从节点heartbeat-1-129上添加一块2g的硬盘。添加硬盘就不演示了,然后启动两台机器。

7.4 对/dev/sdb进行分区

(1)创建分区(以从服务器为例)
主服务器分sdb1和sdb2两个分区,sdb1分区给768M,剩下的全给sdb2分区。下面以从服务器创建分区为例。

[[email protected] ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xd3ee6f66.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won‘t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to
 switch off the mode (command ‘c‘) and change display units to
 sectors (command ‘u‘).

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): +1536M

Command (m for help): p

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3ee6f66

   Device Boot  Start End  Blocks   Id  System
/dev/sdb1   1 197 1582371   83  Linux

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (198-261, default 198):
Using default value 198
Last cylinder, +cylinders or +size{K,M,G} (198-261, default 261):
Using default value 261

Command (m for help): p

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3ee6f66

   Device Boot  Start End  Blocks   Id  System
/dev/sdb1   1 197 1582371   83  Linux
/dev/sdb2 198 261  514080   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# partprobe
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (设备或资源忙).  As a result, it may not reflect all of your changes until after reboot.
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
Error: 无效的分区表 - /dev/sr0 出现递归分区。
[[email protected] ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007ed95

   Device Boot  Start End  Blocks   Id  System
/dev/sda1   *   1  64  512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2  64261120458496   8e  Linux LVM

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3ee6f66

   Device Boot  Start End  Blocks   Id  System
/dev/sdb1   1 197 1582371   83  Linux
/dev/sdb2 198 261  514080   83  Linux

(2)格式化/dev/sdb1,注意/dev/sdb2不要格式化

[[email protected] ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
…省略…
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override. 

扩展:当硬盘数据超过两T的时候,fdisk就用不了了,这时我们就要用parted这个命令。

parted非交互分区

[[email protected] ~]# parted /dev/sdb mklabel gpt
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
是/Yes/否/No? yes
[[email protected] ~]# parted /dev/sdb mkpart primary 0G 2G
[[email protected] ~]# parted -s /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End SizeFile system  Name 标志
 1  1049kB  2000MB  1999MB   primary

提示:

a.这里的meta data分区一定不能格式化建立文件系统。

b.格式化分好的分区现在不能直接挂在(mount)。

c.生产环境DRBD meta data分区一般可设为1-2G。

d.检查meta data分区正常可用的方法 。

[[email protected] ~]# mount /dev/sdb2 /mnt
mount: you must specify the filesystem type

出现上面结果说明meta data分区分的是对的。

8.安装DRBD软件

DRDB软件可以编译安装也可以下载包含的源yum安装,本次采用编译安装的方式。

8.1编译安装DRDB软件(注意下面步骤两台机器都要操作)

(1)下载drbd软件(两台机器都要操作)

可以在官网上下载http://oss.linbit.com/drbd/。

(2)安装gcc和gcc-c++

[[email protected] tools]# yum install gcc gcc-c++ -y

除了安装gcc和gcc-c++还需要安装其他的一些依赖包,为了防止编译发生错误,最好提前安装上,下面是我在编译的时候需要安装的包。

yum install dpkg dpkg-dev dpkg-devel gcc gcc-c++ git rpm-build kernel-devel kernel-headers flex -y

(3)编译drbd

[[email protected] tools]# pwd
/home/linzhongniao/tools
[[email protected] tools]# export LC_ALL=C
[[email protected] tools]# ls
drbd-8.4.4.tar.gz
[[email protected] tools]# tar –xf drbd-8.4.4.tar.gz
[[email protected] tools]# cd drbd-8.4.4
[[email protected] drbd-8.4.4]# ./configure --prefix=/usr/local/drbd8.4.4 --with-km --with-heartbeat --sysconfdir=/etc/

(4)编译出现的问题

出现下面问题yum安装dpkg、dpkg-dev、dpkg-devel再编译

checking for udevinfo... false
configure: WARNING: No dpkg-buildpackage found, building Debian packages is disabled.
出现下面问题yum安装flex,重新编译
configure: error: Cannot build utils without flex, either install flex or pass the --without-utils option.

(5)加载内核

a.先查找内核源码

[[email protected] drbd-8.4.4]# ls -ld /usr/src/kernels/$(uname -r)/
ls: 无法访问/usr/src/kernels/2.6.32-642.el6.x86_64/: 没有那个文件或目录

没有内核源码文件路径yum安装kernel-devel kernel-headers在查看就有了

[[email protected] drbd-8.4.4]# ls -ld /usr/src/kernels/$(uname -r)/
drwxr-xr-x 22 root root 4096 3月   5 05:55 /usr/src/kernels/2.6.32-696.20.1.el6.x86_64/

如果uname –r命令显示的系统内核和在/usr/src/kernels/下查找的系统内核不一样怎么办呢,很简单升级系统内核,重启系统后再查看内核就一样了。

[[email protected] drbd-8.4.4]# ls -ld /usr/src/kernels/2.6.32-696.20.1.el6.x86_64/
drwxr-xr-x 22 root root 4096 Mar  6 19:24 /usr/src/kernels/2.6.32-696.20.1.el6.x86_64/
[[email protected] drbd-8.4.4]# uname -r
 2.6.32-642.el6.x86_64
[[email protected] drbd-8.4.4]# yum -y install kernel
[[email protected] ~]# uname -r
 2.6.32-696.20.1.el6.x86_64

b. 加载系统内核

[[email protected] drbd-8.4.4]# make KDIR=/usr/src/kernels/$(uname -r)/
[[email protected] drbd-8.4.4]# echo $?
0

(6)安装drbd

[[email protected] drbd-8.4.4]# make install

echo $?为零安装成功

9.图片数据/data各配置参数

比较重要的是下面标黄的部分,,我们还用部署heartbeat的那个环境,heartbeat的环境部署前面文章有,这里就不再演示了。

10.配置DRBD参数 (两台机器都要操作)

10.1加载DRBD模块到内核

这个DRBD模块在重启电脑之后就会失效不会自动加载到系统内核中,我们可以放在/etc/rc.local里让它开机生效。生产中是不需要放在/etc/rc.local里面的,不让自动启动,自动启动会导致一些不必要的问题。用lsmod |grep drbd查看有这个内容了就说明内核加载完成。

[[email protected] drbd-8.4.4]# lsmod |grep drbd
[[email protected] drbd-8.4.4]# mo
modinfo  modutil  mountmount.nfsmountpoint   mount.tmpfs
modprobe more mount.cifs   mount.nfs4   mountstats
[[email protected] drbd-8.4.4]# modprobe drbd
[[email protected] drbd-8.4.4]# lsmod |grep drbd
drbd  327370  0
libcrc32c   1246  1 drbd
[[email protected] drbd-8.4.4]# echo ‘modprobe drbd‘ >>/etc/rc.local
[[email protected] drbd-8.4.4]# tail -1 /etc/rc.local
modprobe drbd

10.2 编译DRBD的配置文件drbd.conf

(1)配置DRBD的配置文件

DRBD的配置文件在我们编译的时候指定的那个路径,/etc/下。

[[email protected] etc]# pwd
/etc
[[email protected] etc]# cat drbd.conf
global {
    usage-count no;
}
common {
    syncer {
        # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
        rate 1000M;
        verify-alg crc32c;
    }
}
resource data {
        protocol C;

    disk {
        on-io-error    detach;
    }
    on heartbeat-1-130 {
        device      /dev/drbd0;
        disk      /dev/sdb1;
        address      10.0.10.4:7788;
        meta-disk /dev/sdb2[0];
    }
    on heartbeat-1-129 {
        device      /dev/drbd0;
        disk      /dev/sdb1;
        address      10.0.10.5:7788;
        meta-disk /dev/sdb2[0];
    }
}

(2)配置文件参数说明

global {
    usage-count no;
}

前三行是你全局配置,一般网站都会同居开源网站的安装量,usage-count的值等于no,就是不允许官方统计。

common {
    syncer {
        # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
        rate 1000M;
        verify-alg crc32c;
    }
}

Common段里面设置了同步的速度比如1000M,crc32c是一个算法

resource data {
        protocol C;

    disk {
        on-io-error    detach;
    }
    on heartbeat-1-130 {
        device      /dev/drbd0;
        disk      /dev/sdb1;
        address      10.0.10.4:7788;
        meta-disk /dev/sdb2[0];
    }
    on heartbeat-1-129 {
        device      /dev/drbd0;
        disk      /dev/sdb1;
        address      10.0.10.5:7788;
        meta-disk /dev/sdb2[0];
    }
}

上面resource段是drbd的资源,protocol C是一个实时同步数据的协议,用A或B都是异步同步或半同步,这样会导致数据的丢失,除非业务需求数据不总要并发要求高的情况下。disk表示一个磁盘出现io错误怎么处理。resource后面的data是drbd的资源,注意这里resource可以有多个资源,比如说再想增加一个资源,我们可以把resource这段复制一个就好了,需要修改的有resource后面的资源名称以及disk、meta-disk和同步的地址的端口号,例如7788。这里on heartbeat-1-130的on后面跟的是机器名,注意这里的机器名必须是uname –n返回的结果,device表示drbd的设备,disk表示drbd0对应本机器的第一个分区,address这里的地址是一个同步的地址,meta-disk是meta设备的数据分区对应本机器的第二个分区,0是meta 设备的一个格式。

11.Enabling DRBD资源 (两台机器都要操作)

两台机器都要操作以heartbeat-1-130为例

11.1 初始化DRBD的metadata(Create device metadata)

初始化资源,注意我们初始的资源就是drbd.conf里resource后面的data。

[[email protected] drbd-8.4.4]# drbdadm create-md data
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.

11.2 启动DRBD服务

drbdadm up data

drbdadm up 跟的是resource设置的资源data,也可以指定所有资源drbdadm up all。

[[email protected] ~]# drbdadm up data
/usr/local/drbd8.4.4/var/run/drbd: No such file or directory
/usr/local/drbd8.4.4/var/run/drbd: No such file or directory

我们看有错误提示/usr/local/drbd8.4.4/var/run/drbd: No such file or directory
这个目录找不到centos6版本以上需要有这个目录,好我们就创建一个这个目录再启动drbd。

[[email protected] ~]# mkdir -p /usr/local/drbd8.4.4/var/run/drbd
[[email protected] ~]# drbdadm up data

11.3 可以通过/proc/drbd查看drbd的状态

[[email protected] ~]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by [email protected], 2018-03-06 21:32:41
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:795188

这里显示ro:Secondary/Secondary ds:Inconsistent/Inconsistent是正确的都是从,处于无主(primary)的状态。

11.4 同步DRBD数据到对端SERVER使数据保持一致

11.4.1 指定一个同步的资源,同步数据到对端

说明:

1.如果为空硬盘。可以随意执行操作不需要考虑数据。

2.如果两边数据不一样(要特别注意同步数据的方向,否则可能丢失数据)。

11.4.2 一个资源只能在一端同步到另一端的命令

注意:在主服务器上操作我们的主服务器是heartbeat-1-130

(1)同步数据

[[email protected] ~]# drbdadm -- --overwrite-data-of-peer primary data
[[email protected] ~]# cat /proc/drbd
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by [email protected], 2018-03-06 21:32:41
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
ns:344064 nr:0 dw:0 dr:344724 al:0 bm:21 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:451124
    [=======>............] sync‘ed: 43.6% (451124/795188)K
    finish: 0:00:10 speed: 43,008 (43,008) K/sec
[[email protected] ~]# cat /proc/drbd
version: 8.4.4 (api:1/proto:86-101)
GIT-hash: 74402fecf24da8e5438171ee8c19e28627e1c98a build by [email protected], 2018-03-06 21:32:41
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
ns:795186 nr:0 dw:0 dr:795846 al:0 bm:49 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

(2)参数说明

以主节点为例

cs:Connected:Connected是连接的状态,用zabbix做监控主要看Connected。

ro:Primary/Secondary: Primary是主,Secondary是从;也就是说本地是主对端是从。

ds:UpToDate/UpToDate:UpToDate是两边都更新完成。

12.可能出现的问题及解决方法

cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----

解决方法:

1.检查两台物理网络连接或者IP及主机路由是否正确。

2.停止iptables防火墙。

3.还可能是发生列脑导致的结果。

可以尝试用下面的方法解决

在从节点slave上操作:

drbdadm Secondary data

drbdadm -- --discard-my-data connect data ---> 丢弃本端数据进行连接
在主节点上操作

通过查看cat/proc/drbd状态,如果不是WFConnection状态,则需要手动连接

drbdadm connect data

cat /proc/drbd查看两端状态

13.挂载测试数据库同步及查看备节点同步状态

(1)创建DRBD文件系统

[[email protected] ~]# mkdir /data
[[email protected] ~]# mkfs.ext3 /dev/drbd0
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
49728 inodes, 198796 blocks
9939 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=205520896
7 block groups
32768 blocks per group, 32768 fragments per group
7104 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840

正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[[email protected] ~]# tune2fs -c 0 -i 0 /dev/drbd0
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
[[email protected] ~]# mount /dev/drbd0 /data

(2)测试备节点数据同步情况

先在主节点的DRBD文件系统中插入数据,我们插入个20个文件

[[email protected] data]# touch ‘seq 10‘
[[email protected] data]# ls
1  10  2  3  4  5  6  7  8  9  lost+found
[[email protected] data]# touch `seq 10 20`

查看备节点的数据同步情况,需要先挂载DRBD存储设备,我们看数据已经同步过来了。

[[email protected] ~]# mount /dev/sdb1 /mnt
mount: you must specify the filesystem type
[[email protected] ~]# drbdadm down data
[[email protected] ~]# mount /dev/sdb1 /mnt
[[email protected] ~]# ll /mnt/
总用量 16
 -rw-r--r-- 1 root root 0 3月   7 00:41 1
 -rw-r--r-- 1 root root 0 3月   7 00:43 10
 -rw-r--r-- 1 root root 0 3月   7 00:43 11
 -rw-r--r-- 1 root root 0 3月   7 00:43 12
 -rw-r--r-- 1 root root 0 3月   7 00:43 13
 -rw-r--r-- 1 root root 0 3月   7 00:43 14
 -rw-r--r-- 1 root root 0 3月   7 00:43 15
 -rw-r--r-- 1 root root 0 3月   7 00:43 16
 -rw-r--r-- 1 root root 0 3月   7 00:43 17
 -rw-r--r-- 1 root root 0 3月   7 00:43 18
 -rw-r--r-- 1 root root 0 3月   7 00:43 19
 -rw-r--r-- 1 root root 0 3月   7 00:41 2
 -rw-r--r-- 1 root root 0 3月   7 00:43 20
 -rw-r--r-- 1 root root 0 3月   7 00:41 3
 -rw-r--r-- 1 root root 0 3月   7 00:41 4
 -rw-r--r-- 1 root root 0 3月   7 00:41 5
 -rw-r--r-- 1 root root 0 3月   7 00:41 6
 -rw-r--r-- 1 root root 0 3月   7 00:41 7
 -rw-r--r-- 1 root root 0 3月   7 00:41 8
 -rw-r--r-- 1 root root 0 3月   7 00:41 9
drwx------ 2 root root 16384 3月   7 00:38 lost+found

原文地址:https://www.cnblogs.com/zywu-king/p/8570211.html

时间: 2024-11-10 12:07:16

mysql运维管理-Heartbeat实现web服务的高可用案例及维护要点的相关文章

基于Corosync和Pacemaker实现Web服务的高可用

Corosync+Pacemaker+iscsi+Httpd实现web服务的高可用 一.软件介绍 Corosync实现的是membership和可靠组通信协议 Pacemaker则基于Corosync/Linux-HA实现服务的管理 Corosync包括如下组件:   Totem  protocol   EVS   CPG   CFG   Quorum Extended Virtual  Synchrony算法(EVS)提供两个功能:   组成员列表的同步:   组消息的可靠组播. Pacema

heartbeat双机热备实现Web服务的高可用

防伪码:没有相当程度的孤独是不可能有内心的平和. 1.概述 Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能. 通过heartbeat,可以将资源从一台已经故障的计算机快速转移到另一台运转的机器上继续提供服务. 官网:http://www.linux-ha.org/wiki/Main_Page 1.1 工作原理 主备模式:通过修改

corosync+pacemaker+nfs+pcs配置web服务的高可用

测试环境: OS:rhel6.4 web1: 192.168.1.121  httpd heartbeat pacemaker  crmsh pcs web2: 192.168.1.122  httpd heartbeat pacemaker web3: 192.168.1.125  httpd nfs VIP:192.168.1.160 PS:注意这里的测试环境是干净的,啥也没安装...go on !! 一.安装corosync和pacemaker之前的准备工作 1.节点名称(各个节点通过节点

Mysql运维管理-创建索引知识及创建索引的多种方法实战9

为表的字段创建索引 索引就像书的目录一样,如果在字段上建立索引,那么以索引为条件时可以加快查询数据的速度. 1 创建主键索引 查询数据库的内容,按主键查询是最快的,每个表只能有一个主键,但是可以有多个普通索引列,主键列要求所有内容必须唯一,而索引列不要求内容唯一.我们无论建立主键索引还是普通索引,都要在表的对应列上创建,可以对单列创建索引也可以对多列创建索引建立主键索方法: 1.在创建表时,可以增加建立主键索引语句 [email protected] 04:0932->create table

Mysql运维管理-初步增量恢复mysql数据库10

初步增量恢复MySQL数据实战 a.配置my.cnf配置文件 先把my.cnf配置文件中的log-bin参数打开重命名为mysqlbin_zbf,这样在mysql数据库中更新一个东西就会在这个日志里更新.这样会导致这个日志很大,没关系系统可以自动分割还可以手动分割. [[email protected] var]# vim /etc/my.cnf -省略-- # Uncomment the following if you want to log updates log-bin=mysqlbin

keepalived+httpd 做web服务的高可用

场景: 环境中有两台httpd服务器,一台做主,一台做备用:平时只用主向外提供http服务:当主宕机后,keepalived把vip绑定到备机上去,这样就由备机提供http服务了. **keepalvied 这个软件还是更新的比较快的,主要问题再于它的文档并没能跟上来,不同版本之间的差别比较大,我这里用的是1.2.13版 [0]环境说明 主机ip 系统版本 keepavlied版本192.168.80.131 centos6.6 keepalived-1.2.13192.168.80.132 c

云计算如何保障IT运维管理的安全

在IT运维管理上,每个企业都有自己的管理方法,自从云计算的诞生之后,为企业高效运营带来了更多的帮助,在信息安全方面,保障所有操作有据可查,在高效IT运维管理方面,进而提高企业整体管理效益,同时提高客户满意程度. 随着云计算在中国的迅速发展,与云计算相关的应用也越来越落地.在协助企业提高IT运维管理效率.提升管理效率,还可以固化IT运维管理流程,保证 服务的可靠性以及企业信息安全的稳定性都表现出前所未有的优势,云计算所提供的也不仅仅是一种节约成本且便捷的IT管理方式,更是一种能够协助企业完成从 小

Centos7+Nginx+Keepalived实现Apache服务的高可用&负载均衡

Centos7+Nginx+Keepalived实现Apache服务的高可用&负载均衡 今天是2017年的第一天,昨天也就是2016年的最后一天,我尝试部署了Centos7+Nginx+Keepalived实现WEB服务的高可用负载均衡服务,终于在2017年的第一天前完成了,所以在此分享给有需要的朋友:说到负载均衡,其实在linux下有很多服务可以实现,比如nginx.haproxy.lvs等服务,当前我们在前面的文章有介绍过了,但是对于高可用服务,我们在linux下最常见也是应用最多的是Kee

MySQL 8.0.11 innodb cluster 运维管理手册之二--集群搭建

MySQL 8.0.11 innodb cluster 高可用集群部署运维管理手册之二 集群建设 作者 方连超 基础环境 系统:centos 7.5Mysql:8.0.11 二进制包Mysqlshell: 8.0.11 rpm 包Mysql router: 8.0.11 二进制包 架构: 192.168.181.101 myrouter1 Keepalived.MySQL-shell.MySQL-Router.MySQL-client 192.168.181.102 myrouter2 Keep