DRBD (Distributed Replicated Block Device)分布式复制块设备,它是 Linux 平台上的分散式储存系统,通常用于高可用性(high availability, HA)集群中。DRBD 类似磁盘阵列的RAID 1(镜像),只不过 RAID 1 一般配置在一台服务器内,而 DRBD 是通过网络。
DRBD Resource:DRBD所具有的几种属性:
resource name:可以使用除空白字符外的任意ACSII表中的字符;
drbd设备:drbd的设备的访问路径,设备文件/dev/drbd#;
disk:各节点为组成此drbd设备所提供的块设备,通常是一个磁盘分区;
网络属性:节点间为了实现跨主机磁盘镜像而使用的网络配置;
注意:用户空间工具与drdb与内核中使用的模块版本要保持一致,只有在使用drbdadm工具时才会读取配置文件,对多个资源的公共配置,可以提取出来只配置一次,通常保存在Common中,此外还有global配置,这种配置跟资源本身没有关系的;
drbd的组成部分:第一部分用户空间工具;第二部分是内核模块(在2.6.33及以后版本的内核直接在内核中就有了)
用户空间工具:跟内核版本关系比较松散,只要是能适用于CentOS 6及对应硬件平台的就OK;
内核模块:必须与当下内核版本严格对应;其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。
进程间通信的三种方式:消息序列、旗语及共享内存:
什么是消息队列:
消息被发送到队列中,"消息队列"是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它;消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的。
什么是旗语、什么是信号量:
Linux的旗语就是操作系统原理中的信号量,有PV操作,释放旗语会自动唤醒下一个等待获取旗语的进程;
为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。
信号量是一个特殊的变量,程序对其访问都是原子操作,且只允许对它进行等待(即P(信号变量))和发送(即V(信号变量))信息操作。最简单的信号量是只能取0和1的变量,这也是信号量最常见的一种形式,叫做二进制信号量。而可以取多个正整数的信号量被称为通用信号量。
什么是共享内存:
顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。
数据存储的几种类型:
DAS:(Direct Attach Srorage)直接附加存储,DAS这种存储方式与我们普通的PC存储架构一样,外部存储设备都是直接挂接在服务器内部总线上,数据存储设备是整个服务器结构的一部分。是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。
NAS:(Network Attach Srorage)网络附加存储,它就是个文件服务器,是文件系统级别,NAS和传统的文件存储服务或直接存储设备不同的地方在于NAS设备上面的操作系统和软件只提供了数据存储、数据访问、以及相关的管理功能;此外,NAS设备也提供了不止一种文件传输协议。NAS系统通常有一个以上的硬盘,而且和传统的文件服务器一样,通常会把它们组成RAID来提供服务;有了NAS以后,网络上的其他服务器就可以不必再兼任文件服务器的功能。NAS的型式很多样化,可以是一个大量生产的嵌入式设备,也可以在一般的计算机上运行NAS的软件。
NAS用的是以文件为单位的通信协议,例如像是NFS(在UNIX系统上很常见)或是SMB(常用于Windows系统)。NAS所用的是以文件为单位的通信协议,大家都很清楚它们的运作模式,相对之下,存储区域网络(SAN)用的则是以区块为单位的通信协议、通常是通过SCSI再转为光纤通道或是iSCSI。(还有其他各种不同的SAN通信协议,像是ATA over Ethernet和HyperSCSI,不过这些都不常见。)
SAN:(Storage Area Network)存储区域网络,把SCSI协议借助于其它网络协议实现传送的;1991年,IBM公司在S/390服务器中推出了ESCON(Enterprise System Connection)技术。它是基于光纤介质,最大传输速率达17MB/s的服务器访问存储器的一种连接方式。在此基础上,进一步推出了功能更强的ESCON Director(FC SWitch),构建了一套最原始的SAN系统。
它是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。
DAS、NAS和SAN三种存储方式比较
存储应用最大的特点是没有标准的体系结构,这三种存储方式共存,互相补充,已经很好满足企业信息化应用。
从 连接方式上对比,DAS采用了存储设备直接连接应用服务器,具有一定的灵活性和限制性;NAS通过网络(TCP/IP,ATM,FDDI)技术连接存储设备和应用服务器,存储设备位置灵活,随着万兆网的出现,传输速率有了很大的提高;SAN则是通过光纤通道(Fibre Channel)技术连接存储设备和应用服务器,具有很好的传输速率和扩展性能。三种存储方式各有优势,相互共存,占到了磁盘存储市场的70%以上。SAN和NAS产品的价格仍然远远高于DAS.许多用户出于价格因素考虑选择了低效率的直连存储而不是高效率的共享存储。
客观的说,SAN和NAS系统已经可以利用类似自动精简配置(thin provisioning)这样的技术来弥补早期存储分配不灵活的短板。然而,之前它们消耗了太多的时间来解决存储分配的问题,以至于给DAS留有足够的时间在数据中心领域站稳脚跟。此外,SAN和NAS依然问题多多,至今无法解决。
DRBD在远程传输上支持三种模式:
1、异步:所谓异步就是指数据只需要发给本地的TCP/IP协议栈就可以了,本地存完就OK;而DRBD只需要把数据放到TCP/IP协议栈,放到发送队列中准备发送就返回了;这种方式更高效;
2、半同步:数据已经发送到对方的TCP/IP协议栈上,对方的TCP/IP协议栈已经把数据接收下来了就返回,数据存不存下来就不管了;
3、同步:数据必须确保对方把数据写入对方的磁盘再返回的就叫同步;这种方式数据更可靠;
官方提供的DRBD的工作流程图:
DRBD Resource:DRBD所具有的几种属性:
resource name:可以使用除空白字符外的任意ACSII表中的字符;
drbd设备:drbd的设备的访问路径,设备文件/dev/drbd#;
disk:各节点为组成此drbd设备所提供的块设备,通常是一个磁盘分区;
网络属性:节点间为了实现跨主机磁盘镜像而使用的网络配置;
注意:用户空间工具与drdb与内核中使用的模块版本要保持一致,只有在使用drbdadm工具时才会读取配置文件,对多个资源的公共配置,可以提取出来只配置一次,通常保存在Common中,此外还有global配置,这种配置跟资源本身没有关系的;
drbd的组成部分:第一部分用户空间工具;第二部分是内核模块(在2.6.33及以后版本的内核直接在内核中就有了)
用户空间工具:跟内核版本关系比较松散,只要是能适用于CentOS 6及对应硬件平台的就OK;
内核模块:必须与当下内核版本严格对应;其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。
进程间通信的三种方式:消息序列、旗语及共享内存:
什么是消息队列:
消息被发送到队列中,"消息队列"是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它;消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。消息队列是随内核持续的。
什么是旗语、什么是信号量:
Linux的旗语就是操作系统原理中的信号量,有PV操作,释放旗语会自动唤醒下一个等待获取旗语的进程;
为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。
信号量是一个特殊的变量,程序对其访问都是原子操作,且只允许对它进行等待(即P(信号变量))和发送(即V(信号变量))信息操作。最简单的信号量是只能取0和1的变量,这也是信号量最常见的一种形式,叫做二进制信号量。而可以取多个正整数的信号量被称为通用信号量。
什么是共享内存:
顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。
数据存储的几种类型:
DAS:(Direct Attach Srorage)直接附加存储,DAS这种存储方式与我们普通的PC存储架构一样,外部存储设备都是直接挂接在服务器内部总线上,数据存储设备是整个服务器结构的一部分。是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。
NAS:(Network Attach Srorage)网络附加存储,它就是个文件服务器,是文件系统级别,NAS和传统的文件存储服务或直接存储设备不同的地方在于NAS设备上面的操作系统和软件只提供了数据存储、数据访问、以及相关的管理功能;此外,NAS设备也提供了不止一种文件传输协议。NAS系统通常有一个以上的硬盘,而且和传统的文件服务器一样,通常会把它们组成RAID来提供服务;有了NAS以后,网络上的其他服务器就可以不必再兼任文件服务器的功能。NAS的型式很多样化,可以是一个大量生产的嵌入式设备,也可以在一般的计算机上运行NAS的软件。
NAS用的是以文件为单位的通信协议,例如像是NFS(在UNIX系统上很常见)或是SMB(常用于Windows系统)。NAS所用的是以文件为单位的通信协议,大家都很清楚它们的运作模式,相对之下,存储区域网络(SAN)用的则是以区块为单位的通信协议、通常是通过SCSI再转为光纤通道或是iSCSI。(还有其他各种不同的SAN通信协议,像是ATA over Ethernet和HyperSCSI,不过这些都不常见。)
SAN:(Storage Area Network)存储区域网络,把SCSI协议借助于其它网络协议实现传送的;1991年,IBM公司在S/390服务器中推出了ESCON(Enterprise System Connection)技术。它是基于光纤介质,最大传输速率达17MB/s的服务器访问存储器的一种连接方式。在此基础上,进一步推出了功能更强的ESCON Director(FC SWitch),构建了一套最原始的SAN系统。
它是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。
DAS、NAS和SAN三种存储方式比较
存储应用最大的特点是没有标准的体系结构,这三种存储方式共存,互相补充,已经很好满足企业信息化应用。
从 连接方式上对比,DAS采用了存储设备直接连接应用服务器,具有一定的灵活性和限制性;NAS通过网络(TCP/IP,ATM,FDDI)技术连接存储设备和应用服务器,存储设备位置灵活,随着万兆网的出现,传输速率有了很大的提高;SAN则是通过光纤通道(Fibre Channel)技术连接存储设备和应用服务器,具有很好的传输速率和扩展性能。三种存储方式各有优势,相互共存,占到了磁盘存储市场的70%以上。SAN和NAS产品的价格仍然远远高于DAS.许多用户出于价格因素考虑选择了低效率的直连存储而不是高效率的共享存储。
客观的说,SAN和NAS系统已经可以利用类似自动精简配置(thin provisioning)这样的技术来弥补早期存储分配不灵活的短板。然而,之前它们消耗了太多的时间来解决存储分配的问题,以至于给DAS留有足够的时间在数据中心领域站稳脚跟。此外,SAN和NAS依然问题多多,至今无法解决。
DRBD在远程传输上支持三种模式:
1、异步:所谓异步就是指数据只需要发给本地的TCP/IP协议栈就可以了,本地存完就OK;而DRBD只需要把数据放到TCP/IP协议栈,放到发送队列中准备发送就返回了;这种方式更高效;
2、半同步:数据已经发送到对方的TCP/IP协议栈上,对方的TCP/IP协议栈已经把数据接收下来了就返回,数据存不存下来就不管了;
3、同步:数据必须确保对方把数据写入对方的磁盘再返回的就叫同步;这种方式数据更可靠;
官方提供的DRBD的工作流程图: