传统的数据存储

1.前言

随着移动互联网的普及,用户越来越多,各个企业产生了大量的日志
这些日志主要包括Apache、Nginx等WebService产生的access、error日志
与此同时,各个业务系统还会产生大量的应用日志
这些日志一方面记录了系统的运行状态,另一方面还保留了系统业务处理的逻辑
不仅可以对系统进行实时监控,同时也为后续的问题跟踪和定位提供了数据基础
因此,运维工程师很重要的一个工作职责就是将这些数据进行有效合理的存储
当数据的规模比较小的时候,单机或者通过传统的关系型数据库就可以存储
然而,当数据一旦达到一定的规模(比如TB、PB级别),传统的数据存储方式就会存在很多问题
因此,针对大数据的存储产生了Hadoop生态

2.传统数据存储

  • (1)传统应用的架构
    主要逻辑是
    LVS负责负载均衡;Squid/Varnish承担图片、静态页的缓存功能;Nginx用来做反向代理;
    Web服务器处理业务逻辑;数据库存储业务数据;Cache服务器主要用作对象缓存和列表缓存;
    其中存在大量能产生access日志的服务器,有效存储日志是一个难题

  • (2)传统存储的运行机制
    面对上面的业务系统产生的大量日志,传统的处理方式是采用集中存储
    集中存储就是指有一台大型主机或多台主机组成中心节点,数据集中存储于这个中心节点上
    并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有的功能均由其集中处理
    在集中式系统中,每个终端或客户端仅仅负责数据的录入和输出,而数据的存储与控制处理完全交给主机来完成
    集中式存储最大的特点就是部署结构简单,由于系统往往基于底层性能卓越的大型主机
    因此无须考虑如何对服务部署多个节点,也就不用考虑多个节点之间的分布式协作问题
    共享一个文件系统及其它的物理设备资源,分配存储资源这种工作需要人工干预,由存储管理员来完成
    这种集中式系统也是由关系型业务系统演变而来的
    日志接收服务器通过网络共享、rsync、网络传输等技术,将日志集中到几台磁盘容量很大的大型主机上面
    大型主机可能安装有Oracle或者MySQL等关系型数据库,使用python、perl、shell来处理这些日志,然后输出计算结果
    通过日常的运维工作,工程师发现大型主机尽管在计算和I/O处理方面性能较强,但是始终也避免不了设备老化的问题
    与此同时,这样的架构设计使得大型主机成了单点,那么怎样解决单点问题呢?
    通常的做法就是使用一台具有相同配置的机器作为冷备份,将两台机器耦合在一起
    如果其中一台机器发生了故障,则可以快速地使用另一台机器顶替,维持业务的连续性,这也是最简单的集群形式
    总而言之,两台机器中总有一台一直处于备用状态

3.传统存储带来的问题

  • (1)性能问题
  • (2)成本激增
  • (3)单点问题
  • (4)数据准确性

你可能感兴趣的:(大数据存储技术)