标签(linux): glusterfs

笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流

今天我们来从实战中学习glusterfs


环境准备:

gluster-server两台,各添加一块10G硬盘:

db02 db03

实现目标:

将文件系统挂载到web服务器的www站点用户上传目录

提示:提前就搭建好web服务器nginx,www站点。

=环境准备==

关闭防火墙:

systemctl disable firewalld
systemctl stop firewalld

selinux:

[root@db02 ~]# getenforce
Disabled

系统版本

[root@db03 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@db03 ~]# uname -r
3.10.0-327.el7.x86_64

hosts解析

[root@db02 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.52 db02
172.16.1.53 db03
172.16.1.250 docker

将添加的磁盘写入文件系统

mkfs.xfs -i size=512 /dev/sdb

创建挂载目录

mkdir -p /bricks/brick1

加入fstab开机自动挂载

echo "/dev/sdb                                  /bricks/brick1          xfs     defaults        1 2" >> /etc/fstab
[root@db03 ~]# tail -1 /etc/fstab
/dev/sdb /bricks/brick1 xfs defaults 1 2
#挂载/etc/fstab里面的所有条目
mount -a

以下如无特殊说明均在两台节点操作

安装:

所有服务器

yum install centos-release-gluster -y
yum install glusterfs-server -y

查看glusterfs版本

[root@db03 ~]# gluster --version
glusterfs 3.10.1
Repository revision: git://git.gluster.org/glusterfs.git
Copyright (c) 2006-2016 Red Hat, Inc. <https://www.gluster.org/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.

启动服务

systemctl start gluster
systemctl enable glusterd

在任意一台节点上添加信任池

[root@db02 ~]# gluster peer probe db03
peer probe: success.

查看状态,如果从一个节点能看到其它节点说明OK

[root@db02 ~]# gluster peer status
Number of Peers: 1 Hostname: db03
Uuid: 6465d902-4ec6-4e21-a5dc-f196b499a07e
State: Peer in Cluster (Connected)

设置GlusterFS卷

[root@db02 ~]# mkdir /bricks/brick1/{www,bbs,blog,jpress}
[root@db02 ~]# tree /bricks/
/bricks/
└── brick1
├── bbs
├── blog
├── jpress
└── www

在任意一台机器上创建复制卷(可用性高,写性能不佳.读取速度快,可类比RAID 1)

[root@db02 ~]# gluster volume create www replica 2 db02:/bricks/brick1/www db03:/bricks/brick1/www
volume create: www: success: please start the volume to access data
[root@db02 ~]# for i in bbs blog jpress;do gluster volume create $i replica 2 db02:/bricks/brick1/$i db03:/bricks/brick1/$i;done
volume create: bbs: success: please start the volume to access data
volume create: blog: success: please start the volume to access data
volume create: jpress: success: please start the volume to access data

启动卷

[root@db02 ~]# for i in www bbs blog jpress;do gluster volume start $i;done
volume start: www: success
volume start: bbs: success
volume start: blog: success
volume start: jpress: success

确认卷显示“已启动”:

[root@db02 ~]# gluster volume info

Volume Name: bbs
Type: Replicate
Volume ID: d1776666-d035-4855-8758-fe199b6c1198
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: db02:/bricks/brick1/bbs
Brick2: db03:/bricks/brick1/bbs
Options Reconfigured:
transport.address-family: inet
nfs.disable: on Volume Name: blog
Type: Replicate
Volume ID: d21a6a25-9da0-4940-a831-045257dc4550
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: db02:/bricks/brick1/blog
Brick2: db03:/bricks/brick1/blog
Options Reconfigured:
transport.address-family: inet
nfs.disable: on Volume Name: jpress
Type: Replicate
Volume ID: b9835dcc-da68-4858-9009-2821e31b1cb3
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: db02:/bricks/brick1/jpress
Brick2: db03:/bricks/brick1/jpress
Options Reconfigured:
transport.address-family: inet
nfs.disable: on Volume Name: www
Type: Replicate
Volume ID: 3c541856-f55b-4c03-82e9-d0fe58e6b2f2
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: db02:/bricks/brick1/www
Brick2: db03:/bricks/brick1/www
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

创建www用户,由于

[root@db02 brick1]# useradd -s /sbin/nologin -M -u 1000 www

web服务器挂载卷

mount -t glusterfs db02:/www /application/nginx/html/www/uploads

GlusterFS最佳实践的更多相关文章

  1. JuiceFS CSI Driver 的最佳实践

    文章根据 Juicedata 工程师朱唯唯,在云原生 Meetup 杭州站所作主题演讲<JuiceFS CSI Driver 的最佳实践>整理而成. 大家好,我是来自 Juicedata ...

  2. ASP.NET跨平台最佳实践

    前言 八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营.有过短暂的失落和迷茫,但技术转型真的没有想象中那么难.回头审视,其实单从语言本身来看,C#确实比Java ...

  3. 《AngularJS深度剖析与最佳实践》简介

    由于年末将至,前阵子一直忙于工作的事务,不得已暂停了微信订阅号的更新,我将会在后续的时间里尽快的继续为大家推送更多的博文.毕竟一个人的力量微薄,精力有限,希望大家能理解,仍然能一如既往的关注和支持sh ...

  4. ASP.NET MVC防范CSRF最佳实践

    XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...

  5. 快速web开发中的前后端框架选型最佳实践

    这个最佳实践是我目前人在做的一个站点,主要功能: oauth登录 发布文章(我称为"片段"),片段可以自定义一些和内容有关的指标,如“文中人物:12”.支持自定义排版.插图.建立相 ...

  6. Spring Batch在大型企业中的最佳实践

    在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理.这样的过程就是" ...

  7. Atitit.log日志技术的最佳实践attilax总结

    Atitit.log日志技术的最佳实践attilax总结 1. 日志的意义与作用1 1.1. 日志系统是一种不可或缺的单元测试,跟踪调试工具1 2. 俩种实现[1]日志系统作为一种服务进程存在 [2] ...

  8. PHP核心技术与最佳实践——全局浏览

    难得买到并喜欢一本好书,‘PHP核心技术与最佳实践’. 几天时间,先看了个大概,总结一下整体是什么样子的,怎么看怎么学. 1.总共14章: 2.第1.2章讲PHP的OOP: 其中第一章侧重于PHP的O ...

  9. Abp集成Swagger的最佳实践

    1.在项目中添加nuget包 Abp.Web.Api.SwaggerTool 2.在项目Abp模块的DependsOn添加AbpWebApiSwaggerToolModule Run It,启动项目, ...

随机推荐

  1. ASP.NET Core中使用IOC三部曲(一.使用ASP.NET Core自带的IOC容器)

    前言 本文主要是详解一下在ASP.NET Core中,自带的IOC容器相关的使用方式和注入类型的生命周期. 这里就不详细的赘述IOC是什么 以及DI是什么了.. emm..不懂的可以自行百度. 目录 ...

  2. 学习 node.js 搭建web服务器

    开始 学习使用 node.js 首先完成搭建一个 web服务器.myweb.js var http = require('http'); var url = require('url'); var h ...

  3. 【转】.NET IL实现对象深拷贝

    对于深拷贝,通常的方法是将对象进行序列化,然后再反序化成为另一个对象.例如在stackoverflow上有这样的解决办法:https://stackoverflow.com/questions/785 ...

  4. 使用socket搭建一个网络聊天室

    #服务器端import socket import threading #创建一个TCP端 sock = socket.socket(socket.AF_INET, socket.SOCK_STREA ...

  5. hdu_2030

    一个小小知识点,统计字符串中汉字出现的次数,直接给出代码 //ASCII码的范围是0-127所以,超出范围的都是汉字,因为一个汉字占两个字符位置,所以结果除以2就可以了 #include<cst ...

  6. 最长上升子序列(LIS经典变型) dp学习~5

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 Monkey and Banana Time Limit: 2000/1000 MS (Java ...

  7. 最新版Sublime Text Build 3156 x64 的下载 + 注册码 + Install Package Control + 汉化教程

    一.Sublime Text  下载 神器 Sublime Text 最近开始更新到开发版本 Build 3156,本身英语不是太6,汉化党自然各种百度汉化教程,网上不是一堆绿色汉化包,就是让你下载汉 ...

  8. 使用setTimeout实现setInterval

    setInterval = () =>{ console.log(1) //使用递归 setTimeout(setInterval,1000); }; setInterval()

  9. python基础2 day3

    一.上节回顾 1,while else2,格式化输出name = input('>>>')s1 = '我叫%s,今年%d岁'%(name,18)dic1name = input('& ...

  10. svn冲突文件解决方法

    svn冲突文件解决方法 工具/原料 svn客户端 方法/步骤 1 通过SVN客户端更新需要的文件,如果出现有感叹号的文件,找到出现感叹号的文件. 2 选择感叹号文件,即冲突文件,单击鼠标右键对冲突文件 ...