漫谈云存储

序言

    IAAS层面的运维,所以总是在云里雾里,你如果懂,那就是云,你如果不懂,那就是晕。。。没做过车的人,总是要晕那么一阵子,坐的多了,就慢慢发现稀松平常了。


    最近写的文章,感觉不正经,各种调侃,没有一个总的论点,所以。。。。这篇文章也是,谈谈云存储的时候,再来聊聊其他的一些想法。


云计算

    云计算已经遍地开花,各种层面的运维已经漫地都是。。。IAAS层的运维,PAAS层的运维,SAAS层的运维。。。因为做的主要是IAAS,所以谈谈基础设施即服务的相关情况。


    云计算,不过是构建各种资源池,例如cpu,内存计算资源池,存储池。。。在用户使用的时候,只需要按需申请即可,从而获得和传统领域中一样的计算能力,存储能力,网络能力。从另外一个方面来说,云计算就是各种不同类型的物理机器的组合的计算能力,存储能力的资源池,和水电一样方便。


    公有云,数据中心在别人家手里;私有云,数据中心在自己手里;混合云,核心数据在自己手中,备份或者容灾数据放在共有云中。


    云。。。一般由几个部分组成,最重要的弹性计算服务,其实也就是传统上的虚拟机,我要一个VM,但是,在目前的云中,你申请了一个VM,这可能并不是KVM的VM,也有可能是一个docker,懵懂懵懂之中,其实你并不懂。。。VM或者docker仅仅是资源的隔离,所以,并无多大的区分。


    还有就是SLB,负载均衡设备,其实在市场上,各种开源组建层出不穷,而提供负载均衡服务,只不过将各种开源软件进行组装而已,例如使用LVS提供四层负载均衡服务,例如使用nginx提供七层负载均衡服务,个人感觉在构建SLB的时候,最难的部门的应该在于构建各种网络,提供一个虚拟的VIP,这种看起来容易,做起来也难,那么。。。你如何构建一个IP的资源池呢?你要如何规划这个IP池子的大小?分为内网IP池和外网IP池。。。你如何构建?


    云存储。。。最关键的一部分,各种分布式数据库,分布式文件系统,分布式表格系统,分布式缓存,分布式key-value存储。。。so much more。。。。而当使用所谓的申请虚拟机的时候,是否需要持久化存储,是否需要云存储?数据存储在哪里?分布式存储。。。


    云上。。。。最重要的莫过于云存储!!!


云存储

    心到处流浪,无处安放总是不好的,所以总要找一个人,寻一座城,进行持久化存储。。。这就是云存储的由来。。。


    为啥需要云存储?因为可靠,再也不用纠结于硬盘是做raid5,还是raid10,还是各种。。。因为便宜,在也不用使用什么EMC的高端存储,普通的X86服务器就能胜任。。。


    云存储的好处太多,但是在底层基本都是分布式存储,其实云存储也就是分布式存储,只不过进行了一层封装,这就是为什么那么多人需要打扮的花枝招展,不然怎么招蜂引蝶。。。


    分布式存储怎么来保证可靠性和可用性呢?副本是保证这些的唯一手段。。。在分布式文件系统上,采用的是副本的方式,这就是为什么结婚就要生孩子的理由?需要分片么。。。数据库的分库分表;而在数据库方面,采用的则是主从复制的结构,垂直拆分,水平拆封,不过扩容起来太麻烦了。


    云存储,按需分配,不用像传统行业,在提前预估使用量,采用机器,扩容的时候,安装各种软件,拷贝数据。。。。而在云存储中,将资源利用率达到最高,多租户机制,使用的多,那就申请的多。。。而无须烦恼各种预算,资源的分配,资源的规划。。。规划起来很累很累。。


    存储那么多,那么在一个云中,你是使用一个分布式存储还是多个分布式存储呢?在一个云中,提供各种各样的服务,例如虚拟机,例如各种数据库,那么这些底层都存储在一个分布式文件系统中,你是放在一个中还是多个?


    一个集群使用一个分布式存储,这样不会依赖于其他的组件,那么问题来了,那么多的分布式存储,我是否需要每个都进行安装,升级的时候每个都要升级,修复bug的是否每个都要手工进行修复,。。。所以,就有了模板的概念,将一个模板应用于多个分布式存储的实例,这样。。。运维起来好简单。


    云存储,随着集群的规模越来越大,管理成本是否会上升,运维成本是否会上升,并不会!!!在传统的存储中,随着集群的增大,各种管理成本,人员成本,运维成本都相应的增多。。除了砸钱好像没好的方法。。。团队的扩展性???


    所以,云存储一般很好的支持扩展性,增加一台机器,只要几个命令,或许也都是自动进行安装,加入集群,拷贝部分数据,自动进行数据的负载均衡,随着集群的增大,各种成本都不用上升。。。这也就是为什么云越大。。。好处越多,因为,不会增加各种成本,管理的系统和集群可以无限的扩展。。。所谓的线性扩展不正是如此么。。。


    在云中。。。需要存储哪些数据?


    大数据。。。存储在云存储中。

    虚拟机VM的快照备份信息。。。存储在云存储中。

    数据库的备份binlog信息。。。存储在云存储中。

    

    所谓的有状态和无状态,其实你的分布式存储做好了,一切都不是问题。。应用发布?删除一个虚拟机再次创建一个,数据不会丢失,一点都不担心所谓的物理机宕机了。。。


    所谓的有状态和无状态,这也就是每天晚上很累,第二天睡醒了,又好了,这就是一种无状态的状态。。。这也就是为什么人们总是提到,在工作的时候不要带有情绪,一带有情绪,没准你就存储了这种垃圾数据,然后就要清理数据了。。。


    说到清理数据,在分布式存储中,一般是chunkserver来存储数据,那么总是会有几种情况发生。。。这种是叫野chunk么。。。哈哈。。。。

    

    分片一般保留三份,主要是为了选主的时候,能够达成最终一致性。。。这也就是为什么在清理的时候,需要查询几个状态。。。一个是分片数少于期望数,例如我需要三个分片,如果少于三个,那么就是异常的chunk了。。。一个是没有分片数,在分布式存储中,分片数是可用性的唯一保障,那么这种也是异常的chunk。。。最后一个就是只有一个分片数,这种主要就是在进行数据校验的时候,对比各种md5信息,都找不到一个对比的对象。。。所有的异常都需要进行监控。


   

    

图片

    云。。。云里雾里


    总有一天,会有人骑着七彩祥云来找你。。。


    最近迷恋分布式存储。。。可能。。。要死在存储里。。。。分布式存储里面的计算磁盘空间的消耗。。。真的是太TM的好玩了。。。不动脑子都不行。。。


    但是。。。我的脑子呢。。。我把脑子弄丢了。。。。。我是谁?我在哪里?我在做什么?


猜你喜欢

转载自blog.51cto.com/15060545/2653311
今日推荐