Cloud基础设施 - 初识Ceph

初识Ceph Ceph 是一个开源分布式存储系统系统,它不是一种单一的存储,而是面向云提供一种统一存储平台,包含块存储 RBD, 文件存储 CephFS, 以及对象存储 RGW,这种存储的出现允许用户拜托供应商的绑定,它可以提供块存储到 “云平台”,也可以提供对象存储到 “应用”,并支持理论上的无限扩展性,数千客户端访问 PB 甚至 EB 级别的数据 SAN VS Ceph 与传统 SAN 存储相比,Ceph 客户端会计算他们所需的数据所在的位置,这消除了存储系统中需要在“中心化查找”的瓶颈。 这使得 Ceph 集群可以在不损失性能的情况下进行扩展。 Ceph 集群架构组成 Ceph 集群核心是 RADOS,而基于 RADOS,构建出多种类型存储,块存储, 文件系统, 对象存储,而一个基础的 Ceph 集群的组件由 “Ceph monitor” 与 “Ceph OSD Daemon” 组成 Ceph Monitor(进程名称为 ceph-mon,下文中以 ceph-mon 代表 Ceph Monitor) 维护集群映射的主副本。 ceph集群中的monitor,可确保 ceph-mon 守护进程在失败时的高可用性。客户端从 ceph-mon 检索集群映射的副本。 Ceph OSD Daemon 检查”自身“及”其他“ OSD 的状态并报告给 Monitor。 Ceph 中的常见术语 Application 用于使用 Ceph 集群的任何 Ceph 外部的应用程序 Block Device 也称为 “RADOS 块设备” 或 ”RBD“ ,协调基于块的数据存储的工具,Ceph块设备拆分基于块的应用程序数据 成“块”。 RADOS 将这些块存储为对象。 Ceph 块 设备协调这些对象的存储 存储集群。...

 ·  · 

网络共享 - centos7安装vsftpd

配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。 关闭firewall: bash 1 2 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 安装iptables防火墙 bash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 yum install iptables-services # 安装 vi /etc/sysconfig/iptables # 编辑防火墙配置文件 # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT :wq!...

 ·  · 

网络共享 - centos7安装samba

安装samba服务 text 1 yum install samba -y 配置samba服务 text 1 2 cp /etc/samba/smb.cnf{,.`date +%F`} #<== 修改前备份 vim /etc/samba/smb.cnf smb配置文件 bash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #=================== Global Settings[全局选项] ============================== [global] workgroup = WORKGROUP #<==设定Samba Server所要加入的工作组或域 server string = Samba Server Version %v #<==设定注释,宏%v表示显示Samba的版本号 netbios name = zhi #<==设置Samba Server的NetBIOS名称 map to guest = bad user #<==开启匿名访问 # ----------------- Logging Options [日志选项]----------------------------- #设置日志文件存储位置及名称,宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件 log file = /var/log/samba/log....

 ·  · 

网络文件系统 - NFS

NFS介绍 什么是NFS NFS是 Network File System 网络文件系统。它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS客户端(一般为应用服务器,例如Web)可以通过挂载(mount)的方式将NFS服务器端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器的目录。 一般情况下,Windows网络共享服务或samba服务用于办公局域网共享,而互联网中小型网站集群架构后端常用NFS进行数据共享,如果是大型网站,那么有可能还会用到更复杂的分布式文件系统,例如:Moosefs(mfs)、GlusterFS、FastDFS。 NFS的历史介绍 第一个网络文件系统被称为File Access Listener,由Digital Equipment Corporation(DEC)在1976年开发。 NFS是第一个构建于IP协议之上的现代网络文件系统。在20世纪80年代,它首先作为实验的文件系统,由Sun Microsystems在内部完成开发。NFS协议归属于Request for Comments(RFC)标准,并且随后演化为NFSv2。作为一个标准,由于NFS与其他客户端和服务器的互操作能力很好而发展快速。 之后,标准继续演化,成为NFSv3,在RFC1813中有定义。这一新的协议比以前的版本具有更好的可扩展性,支持大文件(超过2GB),异步写入,并且将TCP作为传输协议,为文件系统在更广泛的网络中使用铺平了道路。在2000年,RFC 3010(由RFC 3530修订)将NFS带入企业级应用。此时,Sun引入了具有较高安全性、带有状态协议的NFSv4(NFS之前的版本都是无状态的)。今天,NFS版本的4.1(由RFC 5661定义)增加了对跨越分布式服务器并行访问的支持(称为PNFS extension)。 NFS系统已经历了近30年的发展。它代表了一个非常稳定的(及可移植)网络文件系统,具备可扩展、高性能等特性,并达到了企业级应用质量标准。由于网络速度的增加和延迟的降低,NFS系统一直是通过网络提供文件系统服务的有竞争力的选择,特别是在中小型互联网企业中,应用十分广泛。 NFS在企业中的应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频、图片、附件等静态资源文件,通常网站用户上传的文件都会放到NFS共享里,例如:BBS产品的图片、附件、头像(注意网站BBS程序不要放在NFS共享里),然后前端所有的节点访问这些静态资源时都可读取NFS存储上的资源。NFS是当前互联网系统架构中最常用的数据存储服务之一,前面说过,中小型网站公司应用频率更高,大公司或门户除了使用NFS外,还可能会使用更为复杂的分布式文件系统,比如Moosefs(mfs)、GlusterFS、FastDFS等。 企业生产集群为什么需要共享存储角色 例如:A用户传图片到Web1服务器,然后让B用户访问这张图片,结果B用户访问的请求分发到了Web2,因为Web2上没有这张图片,这就导致它无法看到A用户上传的图片,如果此时有一个共享存储,A用户上传图片的请求无论是分发到Web1还是Web2上,最终都会存储到共享存储上,而在B用户访问图片时,无论请求分发到Web1还是Web2上,最终也都会去共享存储上找,这样就可以访问到需要的资源了。这个共享存储的位置可以通过开源软件和商业硬件实现,互联网中小型集群架构会用普通PC服务器配置NFS网络文件系统实现。 当集群中没有NFS共享存储时,用户访问图片的情况如图所示。 如果集群中有NFS共享存储,用户访问图片的情况如图所示。 中小型互联网企业一般不会买硬件存储,因为太贵,大公司如果业务发展很快的话,可能会临时买硬件存储顶一下网站的压力,当网站并发继续加大时,硬件存储的扩展相对就会很费劲,且价格成几何级数增加。例如:淘宝网就曾替换掉了很多硬件设备,比如,用LVS+Haproxy替换了netscaler负载均衡设备,用FastDFS、TFS配合PC服务器替换了netapp、emc等商业存储设备,去IOE正在成为互联网公司的主流。 NFS系统原理介绍 NFS系统挂载结构图解与介绍 在NFS服务器端设置好一个共享目录/video后,其他有权限访问NFS服务器端的客户端都可以将这个共享目录/video挂载到客户端本地的某个挂载点(其实就是一个目录,这个挂载点目录可以自己随意指定),不同客户端的挂载点可以不相同。 客户端正确挂载完毕后,就可以通过NFS客户端的挂载点所在的/v/video或/video目录查看到NFS服务器端/video共享出来的目录下的所有数据。在客户端上查看时,NFS服务器端的/video目录就相当于客户端本地的磁盘分区或目录,几乎感觉不到使用上的区别,根据NFS服务器端授予的NFS共享权限以及共享目录的本地系统权限,只要在指定的NFS客户端操作挂载/v/video或/video的目录,就可以将数据轻松地存取到NFS服务器端上的/video目录中了。 什么是RPC 因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口无法固定,它会随机取用一些未被使用的端口来作为传输之用,其中CentOS 5.x的随机端口都小于1024,而CentOS 6.x的随机端口都是较大的。 因为端口不固定,这样一来就会造成NFS客户端与NFS服务器端的通信障碍,因为NFS客户端必须要知道NFS服务器端的数据传输端口才能进行通信,才能交互数据。 要解决上面的困扰,就需要通过远程过程调用RPC(Remote Proce-dure Call)服务来帮忙了,NFS的RPC服务最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而确保客户端可以连接到正确的NFS端口上去,达到实现数据传输交互数据目的。这个RPC服务类似NFS服务器端和NFS客户端之间的一个中介,流程如图10-7所示。 拿房屋中介打个比喻吧:假设我们要找房子,这里的我们就相当于NFS客户端,中介介绍房子,就相当于RPC服务,房子所有者房东就相当于NFS服务,租房的人找房子,就要找中介,中介要预先存有房子主人的信息,才能将房源信息告诉租房的人。 那么RPC服务如何知道每个NFS的端口呢? 当NFS服务器端启动服务时会随机取用若干端口,并主动向RPC服务注册取用的相关端口及功能信息,如此一来,RPC服务就知道NFS每个端口对应的NFS功能了,然后RPC服务使用固定的111端口来监听NFS客户端提交的请求,并将正确的NFS端口信息回复给请求的NFS客户端,这样一来,NFS客户端就可以与NFS服务器端进行数据传输了。 在启动NFS Server之前,首先要启动RPC服务(CentOS 5.8下为portmap服务,CentOS 6.6下为rpcbind服务,下同),否则NFS Server就无法向RPC服务注册了。另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会丢失,因此,此时RPC服务管理的NFS程序也需要重新启动以重新向RPC注册。要特别注意的是,一般修改NFS配置文件后,是不需要重启NFS的,直接在命令行执行/etc/init.d/nfs reload或exportfs-rv即可使修改的/etc/exports生效。 NFS的工作流程原理 当访问程序通过NFS客户端向NFS服务器端存取文件时,其请求数据流程大致如下: 1)首先用户访问网站程序,由程序在NFS客户端上发出存取NFS文件的请求,这时NFS客户端(即执行程序的服务器)的RPC服务(rpcbind服务)就会通过网络向NFS服务器端的RPC服务(rpcbind服务)的111端口发出NFS文件存取功能的询问请求。 2)NFS服务器端的RPC服务(rpcbind服务)找到对应的已注册的NFS端口后,通知NFS客户端的RPC服务(rpcbind服务)。 3)此时NFS客户端获取到正确的端口,并与NFS daemon联机存取数据。 4)NFS客户端把数据存取成功后,返回给前端访问程序,告知用户存取结果,作为网站用户,就完成了一次存取操作。 因为NFS的各项功能都需要向RPC服务(rpcbind服务)注册,所以只有RPC服务才能获取到NFS服务的各项功能对应的端口号(port number)、PID、NFS在主机所监听的IP等信息,而NFS客户端也只能通过向RPC服务询问才能找到正确的端口。也就是说,NFS需要有RPC服务的协助才能成功对外提供服务。从上面的描述,我们不难推断,无论是NFS客户端还是NFS服务器端,当要使用NFS时,都需要首先启动RPC服务,NFS服务必须在RPC服务启动之后启动,客户端无需启动NFS服务,但需要启动RPC服务。 注意: NFS的RPC服务,在CentOS 5.X下名称为portmap,在CentOS 6.X下名称为rpcbind。 安装NFS服务 搭建NFS环境准备 克隆虚拟机 克隆的虚拟机存在的网络问题 原因分析:...

 ·  ·