分布式存储

分布式文件系统及监控系统

蹲街弑〆低调 提交于 2019-12-02 18:35:41
1、搭建mogilefs MogileFS是一个开源的分布式文件存储系统,由LiveJournal旗下的Danga Interactive公司开发。Danga团队开发了包括 Memcached、MogileFS、Perlbal 等多个知名的开源项目。目前使用MogileFS 的公司非常多,如日本排名先前的几个互联公司及国内的yupoo(又拍)、digg、豆瓣、1号店、大众点评、搜狗和安居客等,分别为所在的组织或公司管理着海量的图片。 MogileFS由3个部分组成: (1) server:主要包括mogilefsd和mogstored两个应用程序。mogilefsd实现的是tracker,它通过数据库来保存元数据信息,包括站点domain、class、host等;mogstored是存储节点(store node),它其实是个WebDAV服务,默认监听在7500端口,接受客户端的文件存储请求。在MogileFS安装完后,要运行mogadm工具将所有的store node注册到mogilefsd的数据库里,mogilefsd会对这些节点进行管理和监控。 (2) utils(工具集):主要是MogileFS的一些管理工具,例如mogadm等。 (3) 客户端API:MogileFS的客户端API很多,例如Perl、PHP、Java、Python等,用这个模块可以编写客户端程序

分布式文件系统之Tfs是什么?

≯℡__Kan透↙ 提交于 2019-12-02 10:42:30
Tfs 概念: TFS(Team Foundation Server)是一个高可扩展、高可用、高性能、面向互联网服务的 分布式文件系统 ,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。 架构设计: 一个TFS集群由两个NameServer节点(一主一备)和多个DataServer节点组成 。 以block(通常为64M,可配置)为单位存储和组织数据。 这些服务程序都是作为一个用户级的程序运行在普通Linux机器上的。 NameServer主要管理维护Block和DataServer相关信息 ,包括DataServer加入,退出, 心跳信息, block和DataServer的对应关系建立,解除。 正常情况下,一个块会在DataServer上存在, 主NameServer负责Block的创建,删除,复制,均衡,整理, NameServer不负责实际数据的读写,实际数据的读写由DataServer完成。 DataServer主要负责实际数据的存储和读写。 TFS会将多个小文件存储在同一个block中,并为block建立索引,以便快速在block中定位文件;每个block会存储多个副本到不同的机架上,以保证数据的高可靠性。 为了考虑容灾,NameServer采用了HA结构,即两台机器互为热备,同时运行,一台为主,一台为备

k8s架构

霸气de小男生 提交于 2019-12-02 05:39:11
Kubernetes组件介绍: etcd 保存了整个集群的状态;etcd的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转;键值对数据库 储存K8S集群所有重要信息(持久化) apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;所有服务访问统一入口 controllerMmanager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;维持副本期望数目 scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;负责介绍任务,选择合适的节点进行分配任务 kubelet 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;负责介绍任务,选择合适的节点进行分配任务;直接跟容器引擎交互实现容器的生命周期管理 Container runtime负责镜像管理以及Pod和容器的真正运行(CRI); kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡;负责写入规则至 IPTABLES、IPVS 实现服务映射访问的 COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析 INGRESS CONTROLLER:官方只能实现四层代理,INGRESS 可以实现七层代理 FEDERATION

分布式文件系统FastDFS详解

99封情书 提交于 2019-12-02 00:07:42
上一篇文章《 一次FastDFS并发问题的排查经历 》介绍了一次生产排查并发问题的经历,可能有些人对FastDFS不是特别的了解,因此计划写几篇文章完整的介绍一下这个软件。 为什么要使用分布式文件系统呢? 嗯,这个问题问的好,使用了它对我们有哪些好处?带着这个问题我们来往下看: 单机时代 初创时期由于时间紧迫,在各种资源有限的情况下,通常就直接在项目目录下建立静态文件夹,用于用户存放项目中的文件资源。如果按不同类型再细分,可以在项目目录下再建立不同的子目录来区分。例如: resources\static\file 、 resources\static\img 等。 优点 :这样做比较便利,项目直接引用就行,实现起来也简单,无需任何复杂技术,保存数据库记录和访问起来也很方便。 缺点 :如果只是后台系统的使用一般也不会有什么问题,但是作为一个前端网站使用的话就会存在弊端。一方面,文件和代码耦合在一起,文件越多存放越混乱;另一方面,如果流量比较大,静态文件访问会占据一定的资源,影响正常业务进行,不利于网站快速发展。 独立文件服务器 随着公司业务不断发展,将代码和文件放在同一服务器的弊端就会越来越明显。为了解决上面的问题引入独立图片服务器,工作流程如下:项目上传文件时,首先通过ftp或者ssh将文件上传到图片服务器的某个目录下,再通过ngnix或者apache来访问此目录下的文件

ceph分布式存储的搭建

南笙酒味 提交于 2019-12-01 23:11:26
发现 ceph 在最近几年发展火热,也有很多案例落地企业。 ceph是无中心化的存储,它没有管理节点、计算节点的之分。 ceph的文件是被分片的,每一个数据块是 一个对象,对象保存在不同的服务器上。当节点失效,自动迁移数据,重新复制副本。可以动态的添加元数据服务器和存储节点,容量可以动态扩展。 ceph分为mon监视器节点(至少一个)、osd对象存储节点(至少2个)、mds元数据节点。 osd 进程负责存储数据、处理数据的复制、恢复、回填、再平衡。并通过其他的osd守护进程的心跳,来向mon提供一些监控信息。当你设置osd有2个副本的时候,至少需要2个osd守护进程才能达到archive+clean的状态,默认有3个副本。 mon 负责维护集群状态的各种图表,包括监视图和osd图等。 mds 负责为ceph文件系统存储数据的时候才使用。 存储的过程 :存储的文件数据归类为对象object;对象放在对应的池子里面(pool);pool由若干个pg组成;pg是由若干个osd组成;osd是由硬盘组成。 环境 node1 172.16.1.201 管理节点 数据节点 node2 172.16.1.202 数据节点 node3 172.16.1.203 数据节点 上述要加入/etc/hosts文件里面。 该实验的操作系统为centos 7,ceph k版本。 ceph的部署 1

分布式cookie-session的实现(spring-session)

孤街醉人 提交于 2019-12-01 22:43:19
1 session存储策略 存储,即在后台使用session的setAttribute,getAttribute等方法时,这些内部存放的数据最终存储至什么位置。比如在默认的tomcat实现中,相应的数据即存储在内存中,并在停止之后会序列化至磁盘中。 可以使用内存存储和第三方存储,如redis。对于集群式的session存储,那么肯定会使用第三方存储的实现。 在spring-session中,对session存储单独作了一个定义,但定义上基本保证与http session一致,主要的目的在于它可以支持在非http的环境中模拟使用。因此不直接使用http session接口。 先看定义: public interface Session { /** 获取惟一的id,可以理解为即将每个session当作一个实体对象 */ String getId(); <T> T getAttribute(String attributeName); Set<String> getAttributeNames(); void setAttribute(String attributeName, Object attributeValue); void removeAttribute(String attributeName); } 从这个定义来看,如果要使用httpSession

分布式cookie-session的实现(spring-session)

纵饮孤独 提交于 2019-12-01 22:43:01
1 session存储策略 存储,即在后台使用session的setAttribute,getAttribute等方法时,这些内部存放的数据最终存储至什么位置。比如在默认的tomcat实现中,相应的数据即存储在内存中,并在停止之后会序列化至磁盘中。 可以使用内存存储和第三方存储,如redis。对于集群式的session存储,那么肯定会使用第三方存储的实现。 在spring-session中,对session存储单独作了一个定义,但定义上基本保证与http session一致,主要的目的在于它可以支持在非http的环境中模拟使用。因此不直接使用http session接口。 先看定义: public interface Session { /** 获取惟一的id,可以理解为即将每个session当作一个实体对象 */ String getId(); <T> T getAttribute(String attributeName); Set<String> getAttributeNames(); void setAttribute(String attributeName, Object attributeValue); void removeAttribute(String attributeName); } 从这个定义来看,如果要使用httpSession

Ceph分布式文件系统

房东的猫 提交于 2019-12-01 21:48:56
什么是分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连 分布式文件系统的设计基于客户机/服务器模式 常用的分布式文件系统: Lustre 、 Hadoop 、 FastDFS 、 Ceph 、 GlusterFS 什么是Ceph Ceph是一个分布式文件系统 具有高扩展、高可用、高性能的特点 Ceph可以提供对象存储、块存储、文件系统存储 Ceph可以提供EB级别的存储空间(EB->PB->TB->GB) 软件定义存储(Software Defined Storage)作为存储行业的一大发展趋势,已经越来越受到市场的认可 Ceph组件 OSDs:存储设备 Monitors:集群监控组件 RBD:对象存储网关 MDSs:存放文件系统的元数据(对象存储和块存储不需要该组件) Client:ceph客户端 准备四台虚拟机,其三台作为存储集群节点,一台安装为客户端,实现如下功能: 创建1台客户端虚拟机 创建3台存储集群虚拟机 配置主机名、IP地址、YUM源 修改所有主机的主机名 配置无密码SSH连接 配置NTP时间同步 创建虚拟机磁盘 拓扑结构如图。 一:安装前准备 (1)物理机为所有节点配置yum源服务器。 [root@room9pc01 ~]# yum -y

glusterfs分布式文件系统详细原理

拈花ヽ惹草 提交于 2019-12-01 21:48:15
1.Glusterfs简介 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。 说起glusterfs可能比较陌生,可能大家更多的听说和使用的是NFS,GFS,HDFS之类的,这之中的NFS应该是使用最为广泛的,简单易于管理,但是NFS以及后边会说到MooseFS都会存在单点故障,为了解决这个问题一般情况下都会结合DRBD进行块儿复制。但是glusterfs就完全不用考虑这个问题了,因为它是一个完全的无中心的系统。 2.Glusterfs特点 扩展性和高性能 GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。Scale-Out架构允许通过简单地增加资源来提高存储容量和性能,磁盘、计算和I/O资源都可以独立增加,支持10GbE和InfiniBand等高速网络互联。Gluster弹性哈希(ElasticHash)解除了GlusterFS对元数据服务器的需求,消除了单点故障和性能瓶颈,真正实现了并行化数据访问。 高可用性 GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问

05.10 glusterFS分布式存储

大城市里の小女人 提交于 2019-12-01 21:43:52
第一章 GlusterFS应用环境 GlusterFS主要应用于大文件的存储场景,如果是小文件比较多的情况建议用fastd。 GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。 1.扩展性和高性能 GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。通过弹性哈希解决了对元 数据黑咖啡 的需求,消除了单点故障和性能瓶颈,真正实现了并行化数据访问。 2.高可用 GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至在 硬件故障的情况下也能正常访问。自我修复功能能够把数据恢复到正确的状态,而且修复是以增 量的方式在后台执行,几乎不会产生性能负载。 3.统一命名空间 全局统一命令空间将磁盘和内存资源聚集成一个单一的虚拟存储池,对上层用户屏蔽了底层的物 理硬件。存储资源可以没有数量限制,成千虚拟机均通过单一挂载点进行数据共享。虚拟机I/O 可在命名空间内的所有服务器上自动进行负载均衡