设为首页 收藏本站
查看: 899|回复: 0

[经验分享] lmp+heartbeat+drbd

[复制链接]

尚未签到

发表于 2019-1-6 15:49:10 | 显示全部楼层 |阅读模式
  ############源码安装mysq######
  [root@server25 ~]# tar zxf mysql-boost-5.7.11.tar.gz
  [root@server25 ~]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm
  [root@server25 ~]# yum install gcc-c++ ncurses-devel bison -y
  
  [root@server25 ~]# cd mysql-5.7.11/
  [root@server25 mysql-5.7.11]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/
  
  vim ~/.bash_profile
  PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
  source ~/.bash_profile
  cp /etc/my.cnf /etc/my.cnf .bak
  cd /usr/local/lnmp/mysql/support-files/
  cp my-default.cnf /etc/my.cnf
  cp mysql.server /etc/init.d/mysqld
  cd /usr/local/lnmp/mysql/
  chown mysql.mysql . -R
  
  mysqld --initialize --user=mysql --basedir=/usr/local/lnmp/mysql/ --datadir=/usr/local/lnmp/mysql/data
  chown  root.root . -R
  chown mysql.mysql ./data/  -R
  etc/init.d/mysqld start
  mysql -p
  Alter user root@localhost identified by ‘Westos007’
  
  ############源码安装nginx######
  tar zxf nginx-1.10.1.tar.gz
  cd nginx-1.10.1
  yum  gcc install prce-devel zlib-devel openssh-devel -y
  ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
  vim /root/nginx-1.10.1/auto/cc/gcc
  178 # debug
  179 #CFLAGS="$CFLAGS -g"
  
  vim /root/nginx-1.10.1/src/core/nginx.h
   12 #define nginx_version      1010001
   13 #define NGINX_VERSION      "1.10.1"
   14 #define NGINX_VER          "nginx/"   ##隐藏版本信息
  cd /root/nginx-1.10.1
   make && make install
  useradd -u 900 nginx -s /sbin/nologin 创建一个用户适合于该用户
  ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
  vim /usr/local/nginx/conf/nginx.conf
    1 user  nginx nginx;
    2 worker_processes  auto;
    3 worker_cpu_affinity 1;
  #####进程个数一般跟cpu个数相同如果是两个则为worker_processes 01 10;三个001 010 100(cpu个数信息用lscpu查看)
  nginx -t   检查语法错误
  Nginx  启动服务
  在真机上输入安装nginx主机的ip地址
  
  
  

  
  
  
  
  ############源码安装php#####
  tar jxf php-5.6.20.tar.bz2
  cd php-5.6.20
  yum install -y gcc gcc-c++ net-snmp-devel curl-devel libxml2-devel libpng-devel libjpeg-devel freetype-devel gmp-devel openldap-devel
  
  ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc
  --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir -without-pear --with-gettext --with-gmp--enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-ftp-group=nginx --with-mcrypt --with-mhash --with-mysql --with-mysqli --with-pdo-mysql --enable-mysqlnd
  
  make && make install
  
  [root@server25 php-5.6.20]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
  [root@server25 php-5.6.20]# cd /usr/local/lnmp/php/etc/
  [root@server25 etc]# cp php-fpm.conf.default php-fpm.conf
  [root@server25 etc]# cd /root/php-5.6.20/sapi/fpm/
  [root@server25 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
  [root@server25 fpm]# chmod +x /etc/init.d/php-fpm
  [root@server25 fpm]# cd /usr/local/lnmp/php/etc/
  [root@server25 etc]# vim php-fpm.conf
  取消25行的注释  pid = run/php-fpm.pid
  [root@server25 etc]# vim php.ini
  修改时区   date.timezone = '/Asisa/Shanghai'
  /etc/init.d/php-fpm start
  cd /usr/local/nginx/sbin/
   Ls
  vim ~/.bash_profile
  PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
  source ~/.bash_profile
  
  vim /usr/local/nginx/conf/nginx.conf
   49         location / {
   50             root   html;
   51             index   index.php index.html index.htm;
   52    } ###调整优先级先看index.php
  
  71         location ~ \.php$ {
   72             root           html;
   73             fastcgi_pass   127.0.0.1:9000;
   74             fastcgi_index  index.php;
   75             fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   76             include        fastcgi.conf;
  
  nginx -t
   vim /usr/local/nginx/html/index.php
  
  
  
  vim /usr/local/lnmp/php/etc/php.ini
  mysql.default_socket = /var/lib/mysql/mysql.sock    ##三行socket都改
  重新加载php
  测试

  
  
  ##############3Heartbeat+drbd+mysql
  三个部分分别提供了高可用‘数据库、以及存储服务器。将之后的论坛整合成一个完整的体系
  
  1.数据库 两台都做
  yum install mysql-server -y
  mysql_secure_installation  初始化密码。
  ########################heartbeat软件包安装与配置:#########################
  Server1和server2上同时做
  Yum install *.rpm -y
  rpm -q heartbeat -d
  cp /usr/share/doc/heartbeat-3.0.4/ha.cf /etc/ha.d/ -p
    cp /usr/share/doc/heartbeat-3.0.4/authkeys /etc/ha.d/ -p
    cp /usr/share/doc/heartbeat-3.0.4/haresources /etc/ha.d/ -p
  在server1上执行
  3.修改配置文件
   cd /etc/ha.d/
  主配置文件(/etc/ha.d/ha.cf)://打开或添加以下项
   logfile /var/log/ha-log//系统运行日志文件,取默认值
   logfacility     local0//日志等级,取默认值
   keepalive 2//心跳频率,自己设定。1:表示 1 秒;200ms:表示 200 毫秒
   deadtime 30//节点死亡时间阀值,就是从节点在过了 30 后还没有收到心跳就认为主节点死亡,自己设定
   warntime 10//发出警告时间,自己设定
   initdead 60守护进程首次启动后应该等待60秒后再启动主服务器上的资源
   udpport 694//心跳信息传递的 udp 端口,使用端口 694 进行 bcast 和ucast 通信,取默认值
   bcast   eth0            # Linux//采用 udp 广播播来通知心跳
   auto_failback on//当主节点恢复后,是否自动切回
   node server1.example.com//主节点名称,与 uname –n 保持一致。排在第一的默认为主节点,所以不要搞措顺序
   node server2.example.com//副节点名称,与 uname –n 保持一致
   ping 172.25.45.250
   respawn hacluster /usr/lib64/heartbeat/ipfail
   apiauth ipfail gid=haclient uid=hacluster
  //默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况。
  所以当网络中断时,并不会进行 Load Balancer 和 Backup 之间的切换。
  可以通过 ipfail 插件,设置'ping nodes'来解决这一问题,但不能使用一个集群节点作为
  ping 的节点。
  2) 资源文件(/etc/ha.d/haresources)//添加以下项
  server1.example.com IPaddr::172.25.45.100/24/eth0 drbddisk::example Filesystem::/dev/drbd1::/var/lib/mysql::ext4 mysqld
  
  3)认证文件(/etc/ha.d/authkeys),文件的权限必须是 600:
  auth 1
  1 crc
  #2 sha1 HI!
  #3 md5 Hello!
  
  4)chmod 600 authkeys
  
  scp authkeys ha.cf haresources root@172.25.45.2:/etc/ha.d/
  注意server2上的authkeys文件的权限也要是600
  5./etc/init.d/heartbeat start(server1和server2都执行
  
  #################drbd
  主机:demo 172.25.45.1server1.example.com /dev/vdb (附加磁盘)
   remote 172.25.45.2server2.example.com/dev/vdb (附加磁盘)  4G
  
  所需软件包
  drbd-8.4.2.tar.gz
  Server1上执行
  1) yum install gcc flex rpm-build kernel-devel -y//解决软件依赖性
    rpmbuild ~ //在家目录生成 rpmbuild 编译所需路径
    cp drbd-8.4.0.tar.gz rpmbuild/SOURCES/
    tar zxf drbd-8.4.0.tar.gz
    cd drbd-8.4.0
  ./configure --enable-spec --with-km
  rpmbuild -bb drbd.spec//编译生成 drbd rpm 包
  rpmbuild -bb drbd-km.spec //编译 drbd 内核模块
    cd ~/rpmbuild/RPMS/x86_64
    rpm -ivh *
  2) 拷贝生成的 rpm 包到另一主机,并安装软件包:
  scp * root@172.25.38.2:/root/
  ssh root@172.25.38.2 'rpm -ivh /root/drbd-*.rpm'
  
  2.配置drbd
  Server1上执行
  编辑配置文件
  vim /etc/drbd.d/example.res

  
  2) scp example.res 172.25.45.2:/etc/drbd.d/
  
  启动服务
  在server1和server2上同时执行
  drbdadm create-md example
  /etc/init.d/drbd start
  
  将 demo 设置为 primary 节点,并同步数据:
  在 demo 主机server1执行以下命令
  drbdadm primary  example --force
  
  在两台主机上查看同步状态:
  在server1和server2上同时执行
  watch cat /proc/drbd
  等待同步完成
  
  
  Server1:
  Mount  /dev/drbd1  /mnt/
  cd /mnt/
  rm -fr *
  umount /mnt/
  mount /dev/drbd1 /var/lib/mysql/
  chown mysql.mysql /var/lib/mysql/ -R
  umount /var/lib/mysql/
  vim /etc/ha.d/haresources

  scp /etc/ha.d/haresources root@172.25.45.2:/etc/ha.d/
  
  /etc/init.d/heartbeat start
  
  Server2:
  
  /etc/init.d/heartbeat start
  
  Server1:

  
  drbdadm secondary example
  etc/init.d/heartbeat start
  
  Server2
  drbdadm primary example

  
  搭建论坛
  unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/nginx/html/
  cd /usr/local/nginx/html/upload
  chmod 777 config/
  chmod 777 data  -R
  chmod 777 uc_* -R
  cd /usr/local/lnmp/mysql/
  chmod 755 data/
  Server1上设置root用户可以远程登陆的权限
  Grant all privileges on *.* to “root”@”%” identified by “redhat”;
  测试方法
  在装php的那台主机测试远程登陆172.25.45.100这个ip的数据库并且这个库中有解的权限即可
  
  浏览器上输入172.25.45.1/upload  
  按照步骤即可完成安装
  
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660057-1-1.html 上篇帖子: 构建高科可用性Heartbeat 下篇帖子: heartbeat高可用+lvsDR
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表