运维随笔

SRE & Devops & Architect


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

  • 工具

  • 搜索

glusterfs常用命令

发表于 2019-11-26 | 更新于 2020-08-04 | 分类于 数据库
本文字数: 21k | 阅读时长 ≈ 19 分钟

目的

glusterfs作为分布式存储,优点和安装这里就不再赘述了,看博客中教程。本文主要是介绍glusterfs常用命令和案例。

阅读全文 »

GlusterFS分布式存储集群之使用

发表于 2019-11-05 | 更新于 2020-08-04 | 分类于 数据库
本文字数: 53k | 阅读时长 ≈ 48 分钟

Glusterfs逻辑卷创建与使用

volume是brick的组合,并且大部分glusterfs文件系统的操作都在volume上。

glusterfs支持4种基本卷,并可以根据需求对4种基本卷进行组合形成多种扩展卷(得益于glusterfs的模块化堆栈架构设计)。

以下主要展示各类型逻辑卷的功能性,未对性能做测试验证。

阅读全文 »

GlusterFS分布式存储集群之部署

发表于 2019-11-05 | 更新于 2020-08-04 | 分类于 数据库
本文字数: 22k | 阅读时长 ≈ 20 分钟

Glusterfs框架

Glusterfs(Gluster file system)是开源的,具有强大横向扩展能力的(scale-out),分布式的,可将来自多个服务器的存储资源通过tcp/ip或infiniBand RDMA 网络整合到一个统一的全局命名空间中的文件系统。

框架

img

  1. GlusterFS主要由存储服务器(Brick Server)、客户端以及 NFS/Samba 存储网关组成;
  2. 架构中无元数据服务器组件,无对于提升整个系统的性单点故障和性能瓶颈问题,可提高系统扩展性、性能、可靠性和稳定性;
  3. GlusterFS支持 TCP/IP 和 InfiniBand RDMA 高速网络互联;
  4. 客户端可通过原生 GlusterFS 协议访问数据,其他没有运行 GlusterFS 客户端的终端可通过 NFS/CIFS 标准协议通过存储网关访问数据(存储网关提供弹性卷管理和访问代理功能);
  5. 存储服务器主要提供基本的数据存储功能,客户端弥补了没有元数据服务器的问题,承担了更多的功能,包括数据卷管理、I/O 调度、文件定位、数据缓存等功能,利用 FUSE(File system in User Space)模块将 GlusterFS 挂载到本地文件系统之上,实现 POSIX 兼容的方式来访问系统数据。

常见术语

  1. Brick:GlusterFS中最基本的存储单元,表示为受信存储池(trusted storage pool)中输出的目录,供客户端挂载用,可以通过主机名与目录名来标识,如’SERVER:EXPORT’;
  2. Volume:卷,逻辑上由N个brick组成;
  3. FUSE:Unix-like OS上的可动态加载的模块,允许用户不用修改内核即可创建自己的文件系统;
  4. Glusterd:Gluster management daemon,在trusted storage pool中所有的服务器上运行;
  5. Volfile:Glusterfs进程的配置文件,通常是位于/var/lib/glusterd/vols/目录下的{volname}文件;
  6. Self-heal:用于后台运行检测复本卷中文件与目录的不一致性并解决这些不一致;
  7. Split-brain:脑裂;
  8. GFID:GlusterFS卷中的每个文件或目录都有一个唯一的128位的数据相关联,用于模拟inode;
  9. Namespace:每个Gluster卷都导出单个ns作为POSIX的挂载点。

数据访问流程

img

  1. 在客户端,用户通过 glusterfs的mount point读写数据;
  2. 用户的这个操作被递交给本地 Linux 系统的VFS 来处理;
  3. VFS 将数据递交给 FUSE 内核文件系统(在启动 glusterfs 客户端以前,需要向系统注册一个实际的文件系统 FUSE),该文件系统与 ext3 在同一个层次, ext3 是对实际的磁盘进行处理,而 fuse 文件系统则是将数据通过 /dev/fuse 这个设备文件递交给了glusterfs client 端,可以将 fuse 文件系统理解为一个代理;
  4. 数据被 fuse 递交给 Glusterfs client 后, client 对数据进行一些指定的处理(即按 client 配置文件来进行的一系列处理);
  5. 在 glusterfs client 的处理末端,通过网络将数据递交给 Glusterfs Server, 并且将数据写入到服务器所控制的存储设备上。
阅读全文 »

分布式存储的优劣对比

发表于 2019-11-04 | 分类于 数据库
本文字数: 20k | 阅读时长 ≈ 18 分钟

目的

本文通过对比当前主流的几种分布式存储方案(Ceph,TFS,FastDFS,MogileFS,MooseFS,GlusterFS等),让你知道他们的优缺点,便于你根据使用场景选择合适的方案。

系统整体对比

对比说明/文件系统TFSFastDFSMogileFSMooseFSGlusterFSCeph
开发语言C++CPerlCCC++
开源协议GPL V2GPL V3GPLGPL V3GPL V3LGPL
数据存储方式块文件/Trunk文件块文件/块对象/文件/块
集群节点通信协议私有协议(TCP)私有协议(TCP)HTTP私有协议(TCP)私有协议(TCP)/ RDAM(远程直接访问内存)私有协议(TCP)
专用元数据存储点占用NS无占用DB占用MFS无占用MDS
在线扩容支持支持支持支持支持支持
冗余备份支持支持-支持支持支持
单点故障存在不存在存在存在不存在存在
跨集群同步支持部分支持--支持不适用
易用性安装复杂,官方文档少安装简单,社区相对活跃-安装简单,官方文档多安装简单,官方文档专业化安装简单,官方文档专业化
适用场景跨集群的小文件单集群的中小文件-单集群的大中文件跨集群云存储单集群的大中小文件

开源协议说明

阅读全文 »

基于Keepalived+Haproxy搭建四层负载均衡器

发表于 2019-11-02 | 更新于 2020-08-04 | 分类于 运维技术 > 服务部署
本文字数: 23k | 阅读时长 ≈ 21 分钟

前言

​ Haproxy是稳定、高性能、高可用性的负载均衡解决方案,支持HTTP及TCP代理后端服务器池,因支持强大灵活的7层acl规则,广泛作为HTTP反向代理。本文则详细介绍如何利用它的四层交换与Keepalived实现一个负载均衡器,适用于Socket、ICE、Mail、Mysql、私有通讯等任意TCP服务。系统架构图如下:

点击在新窗口中浏览此图片

阅读全文 »

centos7安装redis教程

发表于 2019-11-02 | 更新于 2019-11-04 | 分类于 运维技术 > 服务部署
本文字数: 5.4k | 阅读时长 ≈ 5 分钟

安装

阅读全文 »

haproxy+keepalived实现Web服务器负载均衡

发表于 2019-11-02 | 更新于 2020-08-04 | 分类于 运维技术 > 服务部署
本文字数: 65k | 阅读时长 ≈ 59 分钟

环境

操作系统:CentOS 6.X 64位

Web服务器:192.168.21.127、192.168.21.128

站点:bbs.osyunwei.com和sns.osyunwei.com部署在两台Web服务器上

实现目的

增加两台服务器(主主模式),通过HAProxy+Keepalived实现Web服务器负载均衡

架构规划

HAProxy服务器:192.168.21.129、192.168.21.130

虚拟服务器(VIP):192.168.21.253、192.168.21.254

验证说明

  1. VIP:192.168.21.253指向192.168.21.129;VIP:192.168.21.254指向192.168.21.130;
  2. 当192.168.21.129宕机时,VIP:192.168.21.253漂移到192.168.21.130上;
  3. 当192.168.21.130宕机时,VIP:192.168.21.254漂移到192.168.21.129上;

这样的主主模式好处是,两台服务器在提供服务的同时,又互为对方的备份服务器。

阅读全文 »

haproxy+keepalived实现高可用负载均衡

发表于 2019-11-02 | 更新于 2020-08-04 | 分类于 运维技术 > 服务部署
本文字数: 13k | 阅读时长 ≈ 12 分钟

目的

在运维的日常工作中和很多服务打交道,为了保证各个服务健康稳定运行,高可用和高负载是在一个服务搭建好后,必须要考虑的问题。本文介绍了一种常用的高可用和负载均衡的解决方案:KA+HA(haproxy+keepalived)

环境

haproxy keepalived 主:192.168.1.192
haproxy keepalived 备:192.168.1.193
vip:192.168.1.200
web:192.168.1.187:80

​ 192.168.1.187:8000

架构图

img

阅读全文 »

ssh端口转发:ssh隧道

发表于 2019-10-30 | 更新于 2020-06-05 | 分类于 网络技术
本文字数: 17k | 阅读时长 ≈ 16 分钟

目的

“ssh端口转发”还有一个更加形象的名字,叫做”ssh隧道”,当然,只是纯粹的通过”ssh隧道”这几个字去理解它可能不太容易,我们来描述一些实际的场景,在这些场景中我们可能会遇到一些问题,而这些问题可以通过”ssh隧道”解决,通过这样的方式,我们反而更加容易理解”ssh隧道”是什么以及它的作用。

假如我们现在有两个台主机,主机A与主机B,主机A上安装有mysql客户端,主机B上安装有mysql服务端,现在,主机A中的mysql客户端需要与主机B中的mysql服务端进行通讯,则需要从mysql的客户端连接到mysql服务端。如下图所示

ssh端口转发:ssh隧道

然而我们知道,mysql在传输数据时是进行明文传输的,如果主机A与主机B只能通过公网进行通讯,那么暴露在公网的mysql通讯是非常不安全的,所以,我们需要借助一些手段,提高访问mysql服务时的安全性,比如,我们可以使用SSL证书为数据加密,或者使用stunnel加密隧道,我们还可以使用VPN,当然,这些方法都不是这篇文章所要描述的重点,我们此处要总结的是”ssh隧道”这种方法,我们可以利用ssh,搭建出一条”通道”,然后将mysq的客户端与服务端通过这条”ssh通道”连接起来,如下图所示

ssh端口转发:ssh隧道

mysql的客户端与服务端的连接方式从原来直连的方式变成了如上图所示的连接方式,它们之间并不直接进行通讯,而是借助ssh隧道将通讯数据转发,虽然仍然跨越了公网,但是由于ssh本身的安全特性,所以别人无法看到明文传输的数据,数据依靠ssh隧道实现了加密的效果,达到了保护数据安全的作用,提升了mysql的客户端与服务端通讯的安全性。

阅读全文 »

SSH隧道与端口转发及内网穿透

发表于 2019-10-29 | 更新于 2020-08-04 | 分类于 网络技术
本文字数: 8.3k | 阅读时长 ≈ 8 分钟

SSH隧道与端口转发及内网穿透

大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多。不过其实除了这个功能,它的隧道转发功能更是吸引人。下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作所得到的一些心得。

SSH/plink命令的基本资料:

首先,认识下这三个非常强大的命令:

相关参数的解释:

-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-D port
指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

-C Enable compression.
压缩数据传输。

-N Do not execute a shell or command.
不执行脚本或命令,通常与-f连用。

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。注:这个参数我在实践中似乎始终不起作用。

阅读全文 »
1…101112…22
豌豆多多

豌豆多多

资深运维架构师豌豆多多的呕心笔记

217 日志
44 分类
71 标签
RSS
GitHub E-Mail Gitee 微博
友情链接
  • 菜鸟教程
  • 自强学堂
  • 运维生存时间
  • 朱双印博客
  • 靳闯博客
  • 运维饼铛
0%
  • Ai3
  • Ansible2
  • Aplayer1
  • Apollo2
  • CAP2
  • Cat1
  • Centos1
  • Cloud2
  • Cmdb3
  • Confd2
  • Confluence2
  • Consul1
  • Dns2
  • Docker18
  • Elk4
  • Eureka1
  • Experiences2
  • Flask1
  • Git6
  • GlusterFS6
  • Go2
  • Haproxy3
  • Hexo6
  • Http2
  • Iptables3
  • Java8
  • Jenkins5
  • Jumperserver2
  • K8s13
  • Kafka1
  • Kali2
  • Keepalived3
  • Linux25
  • Lvs5
  • Mail1
  • Mesos1
  • MongoDB3
  • Mysql5
  • Nacos1
  • Network5
  • Nexus1
  • Nfs1
  • Nginx14
  • Open-falcon2
  • Openldap9
  • Opensips1
  • Openssl1
  • Openvpn1
  • PostgreSQL1
  • Prometheus2
  • Python9
  • Redis9
  • Redmine1
  • RocketChat1
  • Samba1
  • Saturn1
  • Selenium1
  • Sentry3
  • Shell3
  • Sql1
  • Stackstorm2
  • Supervisor2
  • Tcpdump1
  • Tomcat4
  • Uwsgi2
  • Web2
  • Wiki2
  • Windows1
  • Xxl-job1
  • Zabbix10
  • Zookeeper2
© 2020 – 2023 豌豆多多 | 站点总字数: 490k | 站点阅读时长 ≈ 7:25
博客全站共508.5k字
访问人数: | 总阅读量: