Distributed Replicated Block Device (DRBD)

一、DRBD简介
 DRBD的全称为:Distributed Replicated Block Device(DRBD)分布式块设备复制, DRBD是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。可以把它看作是一种网络RAID。它允许用户在远程机器上建立一个本地块设备的实时镜像。
 
DRBD是如何工作的?
 (DRBD Primary)负责接收数据,把数据写到本地磁盘并发送给另一台主机(DRBD Secondary)。另一个主机再将数据存到自己的磁盘中。目前,DRBD每次只允许对一个节点进行读写访问,但这对于通常的故障切换高可用集群来说已经足够用了,有可能以后的版本支持两个节点进行读写存取。
 
DRBD与HA的关系
 一个DRBD系统由两个节点构成,与HA集群类似,也有主节点和备用节点之分,在带有主要设备的节点上,应用程序和操作系统可以运行和访问DRBD设备 (/dev/drbd*)。在主节点写入的数据通过DRBD设备存储到主节点的磁盘设备中,同时,这个数据也会自动发送到备用节点对应的DRBD设备,最终写入备用节点的磁盘设备上,在备用节点上,DRBD只是将数据从DRBD设备写入到备用节点的磁盘中。现在大部分的高可用性集群都会使用共享存储,而DRBD也可以作为一个共享存储设备,使用DRBD不需要太多的硬件的投资。因为它在TCP/IP网络中运行,所以,利用DRBD作为共享存储设备,节约很多成本,因为价格要比专用的存储网络便宜很多;其性能与稳定性方面也不错。
 
二、DRBD复制模式
    协议A:
    异步复制协议。一旦本地磁盘写入已经完成,数据包已在发送队列中,则写被认为是完成的。在一个节点发生故障时,可能发生数据丢失,因为被写入到远程节点上的数据可能仍在发送队列。尽管,在故障转移节点上的数据是一致的,但没有及时更新。这通常是用于地理上分开的节点。
    协议B:
    内存同步(半同步)复制协议。一旦本地磁盘写入已完成且复制数据包达到了对等节点则认为写在主节点上被认为是完成的。数据丢失可能发生在参加的两个节点同时故障的情况下,因为在传输中的数据可能不会被提交到磁盘。
    协议C:
    同步复制协议。只有在本地和远程节点的磁盘已经确认了写操作完成,写才被认为完成。没有任何数据丢失,所以这是一个群集节点的流行模式,但I/O吞吐量依赖于网络带宽 。
    一般使用协议C,但选择C协议将影响流量,从而影响网络时延。为了数据可靠性,我们在生产环境使用时须慎重选项使用哪一种协议。
 
三、 DRBD工作原理图
 DRBD是linux的内核的存储层中的一个分布式存储系统,可用使用DRBD在两台Linux服务器之间共享块设备,共享文件系统和数据。类似于网络RAID-1:

四、安装配置 (drbd-node1/drbd-node2上操作)
1、准备:
两个节点drbd-node1和drbd-node2均按照centos7.2系统,每个节点两块磁盘,一块用作安装系统,一块用作drbd
172.16.30.100 drbd-node1
172.16.30.200 drbd-node2

修改主机名:
# hostnamectl set-hostname drbd-node1
# hostnamectl set-hostname drbd-node2

2、磁盘分区如下
[root@drbd-node1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part
  ├─centos-swap 253:0    0    2G  0 lvm  [SWAP]
  └─centos-root 253:1    0 17.5G  0 lvm  /
sdb               8:16   0   20G  0 disk
sr0              11:0    1 1024M  0 rom

[root@drbd-node2 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 19.5G  0 part
  ├─centos-swap 253:0    0    2G  0 lvm  [SWAP]
  └─centos-root 253:1    0 17.5G  0 lvm  /
sdb               8:16   0   20G  0 disk
sr0                11:0    1 1024M  0 rom

3、创建lvm(每个节点都需执行)
# pvcreate /dev/sdb
# vgcreate data /dev/sdb
# lvcreate --size 10G --name mysql data

4、关闭防火墙(每个节点都需执行)
# setenforce 0
# sed -i.bak "/^SELINUX=enforcing/cSELINUX=disabled" /etc/selinux/config
# systemctl disable firewalld.service
# systemctl stop firewalld.service

5、配置hosts文件(每个节点都需执行)
172.16.30.100 drbd-node1 mysql1
172.16.30.200 drbd-node2 mysql2

6、配置ntp(每个节点都需执行)
# chkconfig chronyd off
# chkconfig ntpd on 
# sed -i "/^server\ 3.centos.pool/a server\ 172.16.8.100 ibust " /etc/ntp.conf
# service ntpd start
# ntpq -p

server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 0

7、配置互信(每个节点都需执行)
 ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
 mv /root/.ssh/{id_dsa.pub,authorized_keys}
 scp -r /root/.ssh/   node2:/root
 
 -f filename指定密钥文件名。
 -N new_passphrase提供一个新的密语。

8、安装drbd
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# yum install -y kmod-drbd84 drbd84-utils

9、配置文件介绍
a、/etc/drbd.conf   //主配置文件
主配置文件中包含了全局配置文件及”drbd.d/”目录下以.res结尾的文件
# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res";

b、/etc/drbd.d/global_common.conf    //全局配置文件
global {
    usage-count no;      #是否参加DRBD使用统计,默认为yes。官方统计drbd的装机量
    # minor-count dialog-refresh disable-ip-verification
}
common {
    protocol C;             #使用DRBD的同步协议
    handlers {
        # These are EXAMPLE handlers only.
        # They may have severe implications,
        # like hard resetting the node under certain circumstances.
        # Be careful when chosing your poison.
        pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
        pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
        local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
        # fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
        # split-brain "/usr/lib/drbd/notify-split-brain.sh root";
        # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";

# before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
        # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
    }
    startup {
        # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
    }
    options {
        # cpu-mask on-no-data-accessible
    }
    disk {
        on-io-error detach; #配置I/O错误处理策略为分离
        # size max-bio-bvecs on-io-error fencing disk-barrier disk-flushes
        # disk-drain md-flushes resync-rate resync-after al-extents
        # c-plan-ahead c-delay-target c-fill-target c-max-rate
        # c-min-rate disk-timeout
    }
    net {

# protocol timeout max-epoch-size max-buffers unplug-watermark
        # connect-int ping-int sndbuf-size rcvbuf-size ko-count
        # allow-two-primaries cram-hmac-alg shared-secret after-sb-0pri
        # after-sb-1pri after-sb-2pri always-asbp rr-conflict
        # ping-timeout data-integrity-alg tcp-cork on-congestion
        # congestion-fill congestion-extents csums-alg verify-alg
        # use-rle
    }
    syncer {
        rate 1024M;    #设置主备节点同步时的网络速率
    }
}

注释: on-io-error 策略可能为以下选项之一
detach分离:   这是默认和推荐的选项,如果在节点上发生底层的硬盘I/O错误,它会将设备运行在Diskless无盘模式下。
pass_on:       DRBD会将I/O错误报告到上层,在主节点上,它会将其报告给挂载的文件系统,但是在此节点上就往往忽略(因此此节点上没有可以报告的上层)
-local-in-error: 调用本地磁盘I/O处理程序定义的命令;这需要有相应的local-io-error调用的资源处理程序处理错误的命令;
这就给管理员有足够自由的权力命令或是脚本调用local-io-error处理I/O错误。
 
c、创建资源 /etc/drbd.d/mysql.res
resource mysql {     #资源名称
protocol C;             #使用协议
meta-disk internal;
device /dev/drbd1;  #DRBD设备名称
syncer {
verify-alg sha1;       #加密算法
}
net {
allow-two-primaries;
}
on drbd-node1 {
disk /dev/data/mysql;               #drbd1使用的磁盘分区
address 172.16.30.100:7789;     #设置DRBD监听地址与端口
}
on drbd-node2 {
disk /dev/data/mysql;
address 172.16.30.200:7789;
}
}

10、将配置文件拷贝到node2上
# scp -rp  /etc/drbd.d/* drbd-node2:/etc/drbd.d/

11、启用drbd 【drbd-node1】
# drbdadm create-md mysql
# modprobe drbd
# drbdadm up mysql
# drbdadm -- --force primary mysql

查看状态
# cat /proc/drbd

12、配置对端节点
# ssh drbd-node2 "drbdadm create-md mysql"
# ssh drbd-node2 "modprobe drbd"
# ssh drbd-node2 "drbdadm up mysql"

13、格式化设备并挂载 【drbd-node1】
# mkfs.xfs /dev/drbd1
# mount /dev/drbd1 /mnt

只有主才可以挂

容错 IO速率
网络RAID
提供块级别存储 廉价存储解决方案

选择协议c 保持数据的一致性
resource 资源名称自定义
on brdb-node1 节点主机名
disk 可以是盘的某个分区

brdbadmin create-md 资源的名称跟resource定义要一致

chrony ---ntp
chronyd

timedatectl
yum makecache 重新建立缓存 不删除

五、相关配置操作
1、资源的连接状态详细介绍
 如何查看资源连接状态?  连接状态(cs) 角色ro  磁盘sc 状态    可以直接cat /proc/brbd
[root@drbd-node1 ~]# drbdadm cstate mysql  #mysql为资源名称
WFConnection

资源的连接状态;一个资源可能有以下连接状态中的一种
 StandAlone 独立的:网络配置不可用;资源还没有被连接或是被管理断开(使用 drbdadm disconnect 命令),或是由于出现认证失败或是脑裂的情况
 Disconnecting 断开:断开只是临时状态,下一个状态是StandAlone独立的
 Unconnected 悬空:是尝试连接前的临时状态,可能下一个状态为WFconnection和WFReportParams
 Timeout 超时:与对等节点连接超时,也是临时状态,下一个状态为Unconected悬空
 BrokerPipe:与对等节点连接丢失,也是临时状态,下一个状态为Unconected悬空
 NetworkFailure:与对等节点推动连接后的临时状态,下一个状态为Unconected悬空
 ProtocolError:与对等节点推动连接后的临时状态,下一个状态为Unconected悬空
 TearDown 拆解:临时状态,对等节点关闭,下一个状态为Unconected悬空
 WFConnection:等待和对等节点建立网络连接
 WFReportParams:已经建立TCP连接,本节点等待从对等节点传来的第一个网络包
 Connected 连接:DRBD已经建立连接,数据镜像现在可用,节点处于正常状态
 StartingSyncS:完全同步,有管理员发起的刚刚开始同步,未来可能的状态为SyncSource或PausedSyncS
 StartingSyncT:完全同步,有管理员发起的刚刚开始同步,下一状态为WFSyncUUID
 WFBitMapS:部分同步刚刚开始,下一步可能的状态为SyncSource或PausedSyncS
 WFBitMapT:部分同步刚刚开始,下一步可能的状态为WFSyncUUID
 WFSyncUUID:同步即将开始,下一步可能的状态为SyncTarget或PausedSyncT
 SyncSource:以本节点为同步源的同步正在进行
 SyncTarget:以本节点为同步目标的同步正在进行
 PausedSyncS:以本地节点是一个持续同步的源,但是目前同步已经暂停,可能是因为另外一个同步正在进行或是使用命令(drbdadm pause-sync)暂停了同步
 PausedSyncT:以本地节点为持续同步的目标,但是目前同步已经暂停,这可以是因为另外一个同步正在进行或是使用命令(drbdadm pause-sync)暂停了同步
 VerifyS:以本地节点为验证源的线上设备验证正在执行
 VerifyT:以本地节点为验证目标的线上设备验证正在执行
 
2、资源角色
 查看资源角色命令
[root@drbd-node2 ~]# drbdadm role  mysql
Secondary/Secondary
[root@drbd-node1 ~]# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2103412

注释:
Parimary 主:资源目前为主,并且可能正在被读取或写入,如果不是双主只会出现在两个节点中的其中一个节点上
Secondary 次:资源目前为次,正常接收对等节点的更新
Unknown 未知:资源角色目前未知,本地的资源不会出现这种状态

3、硬盘状态
查看硬盘状态命令
[root@drbd-node1drbd-node1 ~]# drbdadm dstate mysql
Inconsistent/Inconsistent

本地和对等节点的硬盘有可能为下列状态之一:
 Diskless 无盘:本地没有块设备分配给DRBD使用,这表示没有可用的设备,或者使用drbdadm命令手工分离或是底层的I/O错误导致自动分离
 Attaching:读取无数据时候的瞬间状态
 Failed 失败:本地块设备报告I/O错误的下一个状态,其下一个状态为Diskless无盘
 Negotiating:在已经连接的DRBD设置进行Attach读取无数据前的瞬间状态
 Inconsistent:数据是不一致的,在两个节点上(初始的完全同步前)这种状态出现后立即创建一个新的资源。此外,在同步期间(同步目标)在一个节点上出现这种状态
 Outdated:数据资源是一致的,但是已经过时
 DUnknown:当对等节点网络连接不可用时出现这种状态
 Consistent:一个没有连接的节点数据一致,当建立连接时,它决定数据是UpToDate或是Outdated
 UpToDate:一致的最新的数据状态,这个状态为正常状态
 
4、启用和禁用资源
手动启用资源
drbdadm up <resource>
手动禁用资源
drbdadm down <resource>

注释:
 resource:为资源名称;当然也可以使用all表示[停用|启用]所有资源
 
5、升级和降级资源
升级资源
drbdadm primary <resource>
降级资源
drbdadm secondary <resource>

注释:在单主模式下的DRBD,两个节点同时处于连接状态,任何一个节点都可以在特定的时间内变成主;但两个节点中只能一为主,如果已经有一个主,需先降级才可能升级;在双主模式下没有这个限制

6、初始化设备同步
 选择一个初始同步源;如果是新初始化的或是空盘,这个选择可以是任意的,但是如果其中的一个节点已经在使用并包含有用的数据,那么选择同步源是至关重要的;如果选错了初始化同步方向,就会造成数据丢失,因此需要十分小心
 启动初始化完全同步,这一步只能在初始化资源配置的一个节点上进行,并作为同步源选择的节点上;命令如下:
[root@drbd-node1 ~]# drbdadm -- --overwrite-data-of-peer primary mysql
[root@drbd-node1 ~]# cat /proc/drbd     #查看同步进度
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r---n-
    ns:1897624 nr:0 dw:0 dr:1901216 al:0 bm:115 lo:0 pe:3 ua:3 ap:0 ep:1 wo:f oos:207988
    [=================>..] synced: 90.3% (207988/2103412)K
    finish: 0:00:07 speed: 26,792 (27,076) K/sec
######当同步完成时如以下状态
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by gardner@, 2013-05-27 04:30:21
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:2103412 nr:0 dw:0 dr:2104084 al:0 bm:129 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

注释: drbd:为资源名称
 查看同步进度也可使用以下命令
drbd-overview• 1

7、创建文件系统
文件系统只能挂载在主(Primary)节点上,因此在设置好主节点后才可以对DRBD设备进行格式化操作
格式化文件系统
[root@drbd-node1 ~]# mkfs.ext4 /dev/drbd1

挂载文件系统
[root@drbd-node1 ~]# mount /dev/drbd1 /mnt/

查看挂载
[root@drbd-node1 ~]# mount |grep drbd1
/dev/drbd1 on /mnt type ext4 (rw)
注释:
 “/dev/drbd1”为资源中定义已定义的资源名称
 
 查看DRBD状态
[root@drbd-node1 ~]# drbd-overview
  0:drbd/0  Connected Primary/Secondary UpToDate/UpToDate C r-----
注释:
 Primary:当前节点为主;在前面为当前节点
 Secondary:备用节点为次
 
8、切换主备节点
先把当前主节点降级为次
[root@drbd-node1 ~]# drbdadm secondary mysql

查看DRBD状态
[root@drbd-node1 ~]# drbd-overview
  0:drbd/0  Connected Secondary/Secondary UpToDate/UpToDate C r-----

在drbd-node2节点升级
[root@drbd-node2 ~]# drbdadm primary mysql

查看DRBD状态
[root@drbd-node2 ~]# drbd-overview
  0:drbd/0  Connected Primary/Secondary UpToDate/UpToDate C r-----

9、挂载设备并验证文件是否存在
[root@drbd-node2 ~]# mount /dev/drbd1 /mnt/
[root@drbd-node2 ~]# ls /mnt/
lost+found  test

六、DRBD脑裂的模拟及修复
注释:在drbd-node2为主节点而drbd-node1为备节点
1、断开主(parmary)节点
关机、断开网络或重新配置其他的IP都可以;这里选择的是断开网络

2、查看两节点状态
[root@drbd-node2 ~]# drbd-overview
  0:drbd/0  WFConnection Primary/Unknown UpToDate/DUnknown C r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@drbd-node1 ~]# drbd-overview
  0:drbd/0  StandAlone Secondary/Unknown UpToDate/DUnknown r-----
由上可以看到两个节点已经无法通信;drbd-node2为主节点,drbd-node1为备节点

3、将drbd-node1节点升级为主(primary)节点并挂载资源
[root@drbd-node1 ~]# drbdadm primary mysql
[root@drbd-node1 ~]# drbd-overview
  0:drbd/0  StandAlone Primary/Unknown UpToDate/DUnknown r-----
[root@drbd-node1 ~]# mount /dev/drbd1 /mnt/
[root@drbd-node1 ~]# mount | grep drbd1
/dev/drbd1 on /mnt type ext4 (rw)

4、假如原来的主(primary)节点修复好重新上线了,这时出现了脑裂情况
[root@drbd-node2 ~]# tail -f /var/log/messages
Sep 19 01:56:06 drbd-node2 kernel: d-con drbd: Terminating drbd_a_drbd
Sep 19 01:56:06 drbd-node2 kernel: block drbd1: helper command: /sbin/drbdadm initial-split-brain minor-0 exit code 0 (0x0)
Sep 19 01:56:06 drbd-node2 kernel: block drbd1: Split-Brain detected but unresolved, dropping connection!
Sep 19 01:56:06 drbd-node2 kernel: block drbd1: helper command: /sbin/drbdadm split-brain minor-0
Sep 19 01:56:06 drbd-node2 kernel: block drbd1: helper command: /sbin/drbdadm split-brain minor-0 exit code 0 (0x0)
Sep 19 01:56:06 drbd-node2 kernel: d-con drbd: conn( NetworkFailure -> Disconnecting )
Sep 19 01:56:06 drbd-node2 kernel: d-con drbd: error receiving ReportState, e: -5 l: 0!
Sep 19 01:56:06 drbd-node2 kernel: d-con drbd: Connection closed
Sep 19 01:56:06 drbd-node2 kernel: d-con drbd: conn( Disconnecting -> StandAlone )
Sep 19 01:56:06 drbd-node2 kernel: d-con drbd: receiver terminated
Sep 19 01:56:06 drbd-node2 kernel: d-con drbd: Terminating drbd_r_drbd
Sep 19 01:56:18 drbd-node2 kernel: block drbd1: role( Primary -> Secondary )

5、再次查看两节点的状态
[root@drbd-node1 ~]# drbdadm role drbd
Primary/Unknown
[root@drbd-node2 ~]# drbdadm role mysql
Primary/Unknown

6、查看drbd-node1与drbd-node2连接状态
root@drbd-node1 ~]# drbd-overview
  0:mysql/0  StandAlone Primary/Unknown UpToDate/DUnknown r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@drbd-node2 ~]# drbd-overview
  0:mysql/0  WFConnection Primary/Unknown UpToDate/DUnknown C r----- /mnt ext4 2.0G 68M 1.9G 4%
由上可见,状态为StandAlone时,主备节点是不会通信的

7、在drbd-node1备用节点处理办法
[root@drbd-node1 ~]# umount /mnt/
[root@drbd-node1 ~]# drbdadm disconnect drbd
drbd: Failure: (162) Invalid configuration request
additional info from kernel:
unknown connection
Command 'drbdsetup disconnect ipv4:192.168.137.225:7789 ipv4:192.168.137.222:7789' terminated with exit code 10
[root@drbd-node1 ~]# drbdadm secondary drbd
[root@drbd-node1 ~]# drbd-overview
  0:drbd/0  StandAlone Secondary/Unknown UpToDate/DUnknown r-----
[root@drbd-node1 ~]# drbdadm connect --discard-my-data drbd

执行完以上三步后,查看会发现还是不可用
[root@drbd-node1 ~]# drbd-overview
  0:drbd/0  WFConnection Secondary/Unknown UpToDate/DUnknown C r-----

8、需要在drbd-node2节点上重新建立连接资源
[root@drbd-node2 ~]# drbdadm connect drbd
查看节点连接状态
[root@drbd-node2 ~]# drbd-overview
  0:mysql/0  Connected Primary/Secondary UpToDate/UpToDate C r----- /mnt ext4 2.0G 68M 1.9G 4%
[root@drbd-node1 ~]# drbd-overview
  0:mysql/0  Connected Secondary/Primary UpToDate/UpToDate C r-----

存储之网络Raid(DRBD)相关推荐

  1. 《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.1.1 确定参数...

    本节书摘来华章计算机<vSphere性能设计:性能密集场景下CPU.内存.存储及网络的最佳设计实践>一书中的第1章 ,第1.1节,[美] 克里斯托弗·库塞克(Christopher Kus ...

  2. 《大话存储__网络存储系原理精解与最佳实践》电子书下载

    大话存储__网络存储系原理精解与最佳实践,经典图书   网络存储,是近二十年来的新兴行业.从纸带到硬盘再到大型磁盘阵列,存储系统经历了从简单到复杂,从单块硬盘到存储区域网络(SAN).网络存储行业目前 ...

  3. 存储分析:RAID技术走向何方?

    自1989年以来,RAID(独立磁盘冗余阵列的缩写)技术一直是磁盘系统数据保护的标准.在用户眼中,RAID是一种成熟.可靠的解决方案,也被视为数据存储的基础技术.那些基本的RAID概念很多年都不曾改变 ...

  4. 第一章 计算机体系结构(三)— 存储系统之磁盘列阵技术、存储域网络

    磁盘列阵 是由多台磁盘存储器组成的一个快速.大容量.高可靠的外存子系统. 常见的有:廉价冗余磁盘列阵(RAID). 存储域网络 在大型服务器系统背后都有一个网络,把一个或多个服务器与多个存储设备连接起 ...

  5. 虚拟化方面包含了主机、存储和网络

    基于主机的虚拟化也称为基于服务器的虚拟化,是通过在服务器操作系统中嵌入或添加虚拟层来实现设备虚拟化的,该方法不需要添加特殊的硬件而只需安装具有虚拟化功能的软件模块,它以驱动程序的形式嵌入到应用服务器的 ...

  6. 《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一3.3.3 供应实验室...

    本节书摘来华章计算机<vSphere性能设计:性能密集场景下CPU.内存.存储及网络的最佳设计实践>一书中的第3章 ,第3.3.3节,[美] 克里斯托弗·库塞克(Christopher K ...

  7. 《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.2.2 内存...

    本节书摘来华章计算机<vSphere性能设计:性能密集场景下CPU.内存.存储及网络的最佳设计实践>一书中的第1章 ,第1.2.2节,[美] 克里斯托弗·库塞克(Christopher K ...

  8. Gartner最新报告:阿里云计算、存储、网络、安全均获得最高分

    12月15日,国际权威机构Gartner发布最新报告,全面评估全球顶级云厂商整体能力.阿里云IaaS基础设施能力拿下全球第一,在计算.存储.网络.安全四项核心评比中均斩获最高分,这也是中国云首次超越亚 ...

  9. 存储入门:存储区域网络SAN技术完全详解

    存储区域网络(SAN)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输.存储设备是指一张或多张用以存储计算机数据的磁盘设备.一个 SAN 网络由负责网络连接的通信结构.负责组织连接的管理层 ...

最新文章

  1. iOS UIView快速添加事件
  2. “应付”大学作业,我花3小时写了一个“文本转手写”神器
  3. keras 导出onnx并使用
  4. 商城网站前期功能设置这几项绝不能少!
  5. Sql面试题之三(难度:简单| 含答案)
  6. Linux下快捷键使用
  7. 机器视觉 · 视觉系统选型
  8. python笔记之if练习
  9. ES6学习笔记(二十二)ArrayBuffer
  10. java深度克隆大数据_Java - 深拷贝技巧
  11. Windows上快速在指定目录打开cmd.exe命令行的方法
  12. 你当初是如何走上编程之路的?
  13. jeecg社区第11期导师架构学习班开始报名了
  14. sql查看表的数据大小_查看Oracle 数据库的每天归档量及数据库大小
  15. transform的q、k、v的计算过程
  16. 保护我方小学生!腾讯游戏全面启用防沉迷规则,每月充值金额有上限
  17. C++ IO 格式控制
  18. Android——最全的系统对话框(AlertDialog)详解
  19. 微波浅谈(一)更新中
  20. 纯CSS实现的3D翻页效果

热门文章

  1. 【基于深度学习的脑电图识别】综述篇(二)数据采样及处理:Deep learning-based electroencephalography analysis: a systematic review
  2. Gaea To Houdini
  3. 简单的CTF web密码爆破
  4. 二维动画设计软件应用——Flash CS6全书电子教案完整版电子教案
  5. 扒网站工具 linux,wget 递归下载整个网站(网站扒皮必备)
  6. 【vue】链接生成为二维码图片-qrcode.js2
  7. 软件安全测试-软件安全测试概述
  8. Itext旋转PDF内容的方法
  9. 分布式数据库HBase
  10. 就在上周,联合十多位Android技术圈的小网红,做了一份Android架构师进阶书籍推荐