摘要:
LDP是Label Distribution Protocol的首字母缩写翻译成中文就是标签分发协议;该协议主要用于动态分配和维护mpls标签;在LSR之间通过建立LDP Session来交换彼此的标签,完成标签的分发;建立了LDP Session的两台设备称为LDP Peers(LDP邻居或者叫对等体); 阅读全文
摘要:
一般情况下,在MPLS网络中都使用标签分发协议来实现动态建立LSP,如使用LDP;但是使用动态标签分发协议来动态建立LSP,会存在动态标签分发协议故障,导致MPLS网络流量丢失;因此对于某些关键重要的业务,我们还是需要配置静态LSP来确保传输路径;所以静态LSP其实就是动态LSP的一个备份; 阅读全文
摘要:
MPLS借鉴了ATM的思想,用标签交换来实现快速路由;MPLS是Multi-Protocol Label Switching的首字母缩写,翻译成中文就是多协议标签交换;该协议是一种根据标签转发的技术;可承载在各种链路层协议之上(如,ppp、ATM、帧中继、以太网);同时它还能承载各种网络层报文,如ipv4、ipv6;采用无连接的控制平面,实现路由信息的传递和标签的分发,采用面向连接的数据平面,实现报文在建立的标签转发路径上传送; 阅读全文
摘要:
MGR是一个高度模块化的组件,很多功能都可以通过启用或禁用模块来实现;其中Dashboard这个模块也被MGR所管理,默认情况下该模块并没有被启用;dashboard从字面意思就能知道该模块是提供一个面板;该面板能够显示ceph集群相关状态数据,比如有集群的健康状态、osd有多少个、存储池有多少个,mds、mgr等等相关组件的状态信息; 阅读全文
摘要:
对象存储系统(Object Storage System,简称OSS);对象存储(Object Storage) 是无层次结构的数据存储方法,通常用于云计算环境中;不同于其他数据存储方法,基于对象的存储不使用目录树;数据作为单独的对象进行存储;数据并不放置在目录层次结构中,而是存在于平面地址空间内的同一级别;应用通过唯一地址来识别每个单独的数据对象;每个对象可包含有助于检索的元数据;专为使用API在应用级别(而非用户级别)进行访问而设计; 阅读全文
摘要:
所谓动态子树分区就是根据文件系统的负载能力动态调整对应子树;cephfs就是使用这种方式实现多活mds;在ceph上多主MDS模式是指CephFS将整个文件系统的名称空间切分为多个子树并配置到多个MDS之上,不过,读写操作的负载均衡策略分别是子树切分和目录副本;将写操作负载较重的目录切分成多个子目录以分散负载;为读操作负载较重的目录创建多个副本以均衡负载;子树分区和迁移的决策是一个同步过程,各MDS每10秒钟做一次独立的迁移决策,每个MDS并不存在一个一致的名称空间视图,且MDS集群也不存在一个全局调度器负责统一的调度决策;各MDS彼此间通过交换心跳信息(HeartBeat,简称HB)及负载状态来确定是否要进行迁移、如何分区名称空间,以及是否需要目录切分为子树等;管理员也可以配置CephFS负载的计算方式从而影响MDS的负载决策,目前,CephFS支持基于CPU负载、文件系统负载及混合此两种的决策机制; 阅读全文
摘要:
CephFS依赖于专用的MDS(MetaData Server)组件管理元数据信息并向客户端输出一个倒置的树状层级结构;将元数据缓存于MDS的内存中, 把元数据的更新日志于流式化后存储在RADOS集群上, 将层级结构中的的每个名称空间对应地实例化成一个目录且存储为一个专有的RADOS对象; 阅读全文
摘要:
我们知道Linux主机是由内核空间和用户空间组成;对于Linux主机来说,要想访问底层的硬盘设备,通常都是基于内核的驱动将对应磁盘设备识别成一块存储空间,然后通过用户空间程序执行内核空间的函数来实现操作磁盘;即操作磁盘的操作,最终只有内核有权限;这也意味着,如果一台Linux主机想要使用ceph之上通过RBD抽象出来的磁盘,对应内核空间必须得有一个模块(rbd.ko)能够驱动RBD抽象的硬盘;即Linux内核里的这个模块就是扮演着RBD的客户端; 阅读全文
摘要:
Ceph使用cephx协议对客户端进行身份认证,其过程大致是这样的;每个mon都可以对客户端进行身份验证并分发密钥;这意味着认证靠mon节点完成,不会存在单点和性能瓶颈;mon会返回用于身份验证的数据结构,其中包含获取Ceph服务时用到的session key;所谓session key就是客户端用来向mon请求所需服务的凭证;session key是通过客户端的密钥进行加密传输;当mon收到客户端认证请求后,首先生成session key,然后用客户端的密钥加密session key,然后发送给客户端,客户端用自己的密钥将其解密,拿到session key;客户端有了session key以后,它就可以用这个session key向mon请求服务,mon收到客户端的请求(携带session key),此时mon会向客户端提供一个ticket(入场卷,票据)然后用session key加密后发送给客户端;随后客户端用session key解密,拿着这个凭证到对应osd完成认证; 阅读全文
摘要:
erasure-code-profile参数是用于指定纠删码池配置文件;未指定要使用的纠删编码配置文件时,创建命令会为其自动创建一个,并在创建相关的CRUSH规则集时使用到它;默认配置文件自动定义k=2和m=1,这意味着Ceph将通过三个OSD扩展对象数据,并且可以丢失其中一个OSD而不会丢失数据,因此,在冗余效果上,它相当于一个大小为2的副本池 ,不过,其存储空间有效利用率为2/3而非1/2。 阅读全文
摘要:
什么是存储池呢?在ceph上,所谓存储池是ceph以“存储池(pool)”的方式,将RADOS存储集群提供的存储服务逻辑分割一个或多个存储区域;我们可以理解为数据对象的名称空间;实践中,管理员可以为特定应用程序存储不同类型数据的需求分别创建专用的存储池,例如rbd存储池、rgw存储池等,也可以为某个项目或某个用户创建专有的存储池;当然,如果我们在一个存储池里存储的数据过多,为了方便管理,存储池还可以进一步细分为一至多个名称空间(namespace);客户端(包括rbd和rgw等)存取数据时,需要事先指定存储池名称、用户名和密钥等信息完成认证,而后将一直维持与其指定的存储池的连接,于是也可以把存储池看作是客户端的IO接口; 阅读全文
摘要:
ceph -s主要输出有三类信息,一类是集群相关信息,比如集群id,健康状态;第二类是服务类相关信息,比如集群运行了几个mon节点,几个mgr节点,几个mds,osd和rgw;这些服务都处于什么样的状态等等;我们把这些信息称为集群运行状况,它可以让我们一目了然的了解到集群现有运行状况;第三类信息是数据存储类的信息;比如有多少个存储池,和pg数量;usage用来展示集群使用容量和剩余容量以及总容量;这里需要注意一点,集群显示的总磁盘大小,它不等于可以存储这么多对象数据;因为每一个对象数据都多个副本,所以真正能够存储对象数据的量应该根据副本的数量来计算;默认情况下,我们创建的存储都是副本型存储池,副本数量是3个(其中一个主,两个从),即每一个对象数据都会存储三份,所以真正能够存储对象数据的空间只有总空间的三分之一; 阅读全文
摘要:
我们知道RADOS集群是ceph底层存储集群,部署好RADOS集群以后,默认只有RBD(Rados Block Device)接口;但是该接口并不能使用;这是因为在使用rados存储集群存取对象数据时,都是通过存储池找到对应pg,然后pg找到对应的osd,由osd通过librados api接口将数据存储到对应的osd所对应的磁盘设备上; 阅读全文
摘要:
ceph-deploy:该部署工具是ceph官方的部署工具,它只依赖SSH访问服务器,不需要额外的agent;它可以完全运行在自己的工作站上(比如admin host),不需要服务器,数据库类似的东西;该工具不是一个通用的部署工具,只针对ceph;相比ansible,puppet,功能相对单一;该工具可以推送配置文件,但它不处理客户端配置,以及客户端部署相关依赖等; 阅读全文
摘要:
Ceph是一个对象式存储系统,所谓对象式存储是指它把每一个待管理的数据流(比如一个文件)切分成一到多个固定大小的对象数据,并以其为原子单元完成数据的存取;对象数据的底层存储服务由多个主机组成的存储集群;该集群被称之为RADOS(Reliable Automatic Distributed Object Store)集群;翻译成中文就是可靠的、自动化分布式对象存储系统; 阅读全文
摘要:
ARP是Address Resolution Protocol的首字母缩写,翻译成中文就是地址解析协议;它主要是将ip地址解析成对应设备的mac地址;我们知道以太网设备之间通信都是需要二层mac地址的封装;那么我们平常配置的ip地址给设备,它是怎么和对端通信的呢?首先本端要发送ARP请求通信目标mac地址(如果本地ARP缓存表里没有对应条目的情况下,如果有就直接封装本端mac和ip地址为源mac和源ip,把对端的mac和ip封装成目标mac和目标ip);只有对端回复了arp请求以后,本端就会将arp回复报文中的源mac当作对应通信目标的mac,并将对应信息存入arp缓存表中,以备后续再次通信使用;简单讲ARP就是根据IP地址获取mac地址的TCP/IP协议;ARP协议有一个特点,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;这样一来非法主机在局域网里恶意发送伪造的arp应答报文,就会对应网络造成影响; 阅读全文
摘要:
IPSG是IP Source Guard的缩写,翻译成中文就是IP源保护,或者IP源防攻击;它是基于二层接口的源ip地址过滤技术;主要作用是防止恶意主机伪造合法主机的IP地址来仿冒合法主机;确保非授权主机不能通过自己指定的IP地址的方式来访问网络或攻击网络; 阅读全文
摘要:
通常DHCP攻击有两种,一种是DHCP饿死攻击(DHCP Starvation),所谓DHCP饿死攻击,是指攻击者发送大量的不完整DHCP请求,把DHCP服务器内的可用ip地址快速消耗殆尽;另外一种就是DHCP欺骗攻击(DHCP Spoof);所谓DHCP欺骗是指攻击者私自搭建DHCP服务器,来影响客户端的ip获取情况(这是利用DHCP客户端的特性,谁的offer先到就用谁的); 阅读全文
摘要:
所谓MAC地址漂移是指在交换机上的一个端口学习到的MAC在同VLAN下的其他端口也学习到了相同的MAC地址;即该MAC地址在同一交换机下的相同VLAN的多个端口之间来回漂浮,一会在这口,一会在那口;我们把这种现象叫做MAC地址漂移现象;发生MAC地址漂移现象的原因只有两种,一种是网络中存在环路;一种就是网络中存在恶意用户伪造MAC地址来欺骗交换机; 阅读全文
摘要:
什么是端口安全呢?端口安全是对端口的一种保护机制;我们知道MAC安全特性中,默认情况没有配置任何配置的端口,它能够学习很多动态MAC,并且老化时间为5分钟;即我们没有限制端口学习MAC的数量;没有限制数量这意味着只要有一个MAC帧,对应端口都会学习源MAC,即不管是伪造的mac还是真正设备的MAC,该端口都会进行学习MAC和转发数据;端口安全主要是从MAC的学习数量和MAC的内容进行限制,从而实现该端口只能学习和转发合法的MAC地址及数据;即端口安全提供了限制该端口学习MAC的数量以及限制MAC的内容这两种机制;开启了端口安全功能以后,交换机学习到的动态mac地址会转换为安全MAC地址(安全MAC地址包括,动态安全MAC、安全静态MAC和sticky MAC),阻止非法用户通过本接口和交换机通信,从而增强设备的安全性; 阅读全文