drdb参考的博客

案例:

<colgroup><col style="width: 70px;"><col style="width: 785px;"></colgroup>
|

1

2

3

4

5

6

7

8

9

10

11

12

13

14

|

resource web { #资源名为“web”

on node1.magedu.com { #设置节点cluster1

device    /dev/drbd0; #指出drbd的标示名    

disk      /dev/sda5; #指出作为drbd的设备  

address   172.16.100.11:7789; #指定ip和端口号  

meta-disk internal; #网络通信属性,指定drbd的元数据在本机    

}

on node2.magedu.com {

device    /dev/drbd0;    

disk      /dev/sda5;    

address   172.16.100.12:7789;    

meta-disk internal;    

}

}

|

十、DRBD 支持的底层设备

DRBD需要构建在底层设备之上,然后构建出一个块设备出来。对于用户来说,一个DRBD设备,就像是一块物理的磁盘,可以在商脉内创建文件系统。DRBD所支持的底层设备有以下这些类:

  • 一个磁盘,或者是磁盘的某一个分区。
  • 一个soft raid 设备。
  • 一个LVM的逻辑卷。
  • 一个EVMS(Enterprise Volume Management System,企业卷管理系统)的卷。
  • 其他任何的块设备。

十一、DRBD 配置步骤

  • 安装drbd
  • 配置资源文件(定义资料名称,磁盘,节点信息,同步限制等)
  • 将drbd加入到系统服务chkconfig --add drbd
  • 初始化资源组drbdadm create-md resource_name
  • 启动服务 service drbd start
  • 设置primary主机,并同步数据
  • 分区、格式化/dev/drbd*
  • 一个节点进行挂载
  • 查看状态

十二、安装与配置 DRBD 详解

1.实验拓扑

2.png

2.实验环境

(1).操作系统

  • CentOS 6.4 X86_64

(2).软件环境

  • kmod-drbd84-8.4.2-1.el6_3.elrepo.x86_64
  • drbd84-utils-8.4.2-1.el6.elrepo.x86_64

(3).安装epel源

node1:

<colgroup><col style="width: 70px;"><col style="width: 1011px;"></colgroup>
|

1

2

3

4

5

6

7

8

|

[root@node1 src]# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@node1 src]# rpm -ivh epel-release-6-8.noarch.rpm

warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256Signature, key ID 0608b895: NOKEY

Preparing... ########################################### [100%]

1:epel-release ########################################### [100%]

[root@node1 src]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[root@node1 ~]# rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

[root@node1 ~]# yum list

|

node2:

<colgroup><col style="width: 70px;"><col style="width: 1011px;"></colgroup>
|

1

2

3

4

5

6

7

8

|

[root@node2 src]# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@node2 src]# rpm -ivh epel-release-6-8.noarch.rpm

warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256Signature, key ID 0608b895: NOKEY

Preparing... ########################################### [100%]

1:epel-release ########################################### [100%]

[root@node2 src]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[root@node2 ~]# rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

[root@node2 ~]# yum list

|

3.安装DRBD

说明:drbd共有两部分组成:内核模块和用户空间的管理工具。其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。CentOS 6.4的内核版本是2.6.32-358.el6.x86_64,所以还提安装内核模块。

node1:

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

|

[root@node1 ~]# yum -y install drbd84 kmod-drbd84

|

node2:

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

|

[root@node2 ~]# yum -y install drbd84 kmod-drbd84

|

4.配置DRBD

(1).查看一下配置文件

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

3

4

5

|

[root@node1 ~]# ll /etc/drbd.conf /etc/drbd.d/

-rw-r--r-- 1 root root 133 9月 6 2012 /etc/drbd.conf

/etc/drbd.d/:

总用量 4

-rw-r--r-- 1 root root 1650 9月 6 2012 global_common.conf

|

注:drbd配置文件是分为模块化的,drbd.conf是主配置文件,其它模块配置文件在/etc/drbd.d/下

<colgroup><col style="width: 70px;"><col style="width: 1529px;"></colgroup>
|

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

|

[root@node1 ~]# vim /etc/drbd.conf #查看主配置文件

You can find an example in /usr/share/doc/drbd.../drbd.conf.example

include "drbd.d/global_common.conf";

include "drbd.d/*.res";

[root@node1 ~]# cat /etc/drbd.d/global_common.conf #查看主配置文件

global {

usage-count yes;   

# minor-count dialog-refresh disable-ip-verification   

}

common {

handlers {   

    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 {  

    # 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   

}   

}

|

(2).修改全局配置文件

<colgroup><col style="width: 70px;"><col style="width: 1529px;"></colgroup>
|

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

|

[root@node1 ~]# cat /etc/drbd.d/global_common.conf

global {

usage-count no; #让linbit公司收集目前drbd的使用情况,yes为参加,我们这里不参加设置为no   

# minor-count dialog-refresh disable-ip-verification   

}

common {

handlers {   

    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 {  

    # 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   

    on-io-error detach; #同步错误的做法是分离   

}

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   

    cram-hmac-alg "sha1"; #设置加密算法sha1   

    shared-secret "mydrbdlab"; #设置加密key   

}   

}

|

(3).增加资源

<colgroup><col style="width: 70px;"><col style="width: 785px;"></colgroup>
|

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

|

[root@node1 drbd.d]# cat web.res

resource web {

on node1.test.com {

device    /dev/drbd0;   

disk      /dev/sdb;   

address   192.168.1.201:7789;   

meta-disk internal;   

}

on node2.test.com {

device    /dev/drbd0;   

disk      /dev/sdb;   

address   192.168.1.202:7789;   

meta-disk internal;   

}

}

|

(4).将配置文件同步到node2

<colgroup><col style="width: 70px;"><col style="width: 1164px;"></colgroup>
|

1

2

3

4

5

6

7

8

|

[root@node1 drbd.d]# scp global_common.conf web.res node2:/etc/drbd.d/

The authenticity of host 'node2 (192.168.1.202)' can't be established.

RSA key fingerprint is da:20:3d:2a:ef:4f:03:bc:4d:91:5e:82:25:e7:8c:ec.

Are you sure you want to continue connecting (yes/no)? yes^[[A

Warning: Permanently added 'node2,192.168.1.202' (RSA) to the list of known hosts.

root@node2's password:

global_common.conf 100% 1724 1.7KB/s 00:00

web.res 100% 285 0.3KB/s 00:00

|

(5).node1与node2上初始化资源

node1:

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

3

4

5

|

[root@node1 ~]# drbdadm create-md web

Writing meta data...

initializing activity log

NOT initializing bitmap

New drbd meta data block successfully created.

|

node2:

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

3

4

5

|

[root@node2 ~]# drbdadm create-md web

Writing meta data...

initializing activity log

NOT initializing bitmap

New drbd meta data block successfully created.

|

(6).node1与node2上启动DRBD服务

node1:

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

3

4

5

6

7

8

|

[root@node1 ~]# service drbd start

Starting DRBD resources: [

 create res: web   

prepare disk: web

adjust disk: web   

 adjust net: web   

]

.

|

node2:

<colgroup><col style="width: 70px;"><col style="width: 785px;"></colgroup>
|

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

|

[root@node2 ~]# service drbd start

Starting DRBD resources: [

 create res: web   

prepare disk: web

adjust disk: web   

 adjust net: web   

]

..........


DRBD's startup script waits for the peer node(s) to appear.

  • In case this node was already a degraded cluster before the

    reboot the timeout is 0 seconds. [degr-wfc-timeout]

  • If the peer was available before the reboot the timeout will

    expire after 0 seconds. [wfc-timeout]

    (These values are for resource 'web'; 0 sec -> wait forever)

To abort waiting enter 'yes' [ 11]:

.

|

(7).查看一下启动状态

node1:

<colgroup><col style="width: 70px;"><col style="width: 953px;"></colgroup>
|

1

2

3

4

5

|

[root@node1 ~]# cat /proc/drbd

version: 8.4.2 (api:1/proto:86-101)

GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10

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:20970844

|

node2:

<colgroup><col style="width: 70px;"><col style="width: 953px;"></colgroup>
|

1

2

3

4

5

|

[root@node2 ~]# cat /proc/drbd

version: 8.4.2 (api:1/proto:86-101)

GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10

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:20970844

|

(8).命令查看一下

node1:

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

|

[root@node1 ~]# drbd-overview

0:web/0 Connected Secondary/Secondary Inconsistent/Inconsistent C r-----

|

node2:

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

|

[root@node2 ~]# drbd-overview

0:web/0 Connected Secondary/Secondary Inconsistent/Inconsistent C r-----

|

从上面的信息中可以看出此时两个节点均处于Secondary状态。于是,我们接下来需要将其中一个节点设置为Primary。在要设置为Primary的节点上执行如下命令:drbdsetup /dev/drbd0 primary –o ,也可以在要设置为Primary的节点上使用如下命令来设置主节点: drbdadm -- --overwrite-data-of-peer primary web

(9).将node1设置为主节点

<colgroup><col style="width: 70px;"><col style="width: 785px;"></colgroup>
|

1

2

3

4

5

6

7

8

9

10

11

12

|

[root@node1 ~]# drbd-overview #node1为主节点

0:web/0 SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-

[>...................] sync'ed:  5.1% (19440/20476)M

注:大家可以看到正在同步数据,得要一段时间

[root@node2 ~]# drbd-overview #node2为从节点

0:web/0 SyncTarget Secondary/Primary Inconsistent/UpToDate C r-----

[==>.................] sync'ed: 17.0% (17016/20476)M

同步完成后,查看一下

[root@node1 ~]# drbd-overview

0:web/0 Connected Primary/Secondary UpToDate/UpToDate C r-----

[root@node2 ~]# drbd-overview

0:web/0 Connected Secondary/Primary UpToDate/UpToDate C r-----

|

(10).格式化并挂载

<colgroup><col style="width: 70px;"><col style="width: 785px;"></colgroup>
|

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

|

[root@node1 ~]# mke2fs -j /dev/drbd

drbd/ drbd1 drbd11 drbd13 drbd15 drbd3 drbd5 drbd7 drbd9

drbd0 drbd10 drbd12 drbd14 drbd2 drbd4 drbd6 drbd8

[root@node1 ~]# mke2fs -j /dev/drbd0

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

操作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe blocks

1310720 inodes, 5242711 blocks

262135 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=4294967296

160 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,    

4096000

正在写入inode表: 完成

Creating journal (32768 blocks):

完成

Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 28 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@node1 ~]#

[root@node1 ~]# mkdir /drbd

[root@node1 ~]# mount /dev/drbd0 /drbd/

[root@node1 ~]# mount

/dev/sda2 on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw)

/dev/sda1 on /boot type ext4 (rw)

/dev/sda3 on /data type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/drbd0 on /drbd type ext3 (rw)

[root@node1 ~]# cd /drbd/

[root@node1 drbd]# cp /etc/inittab /drbd/

[root@node1 drbd]# ll

总用量 20

-rw-r--r-- 1 root root 884 8月 17 13:50 inittab

drwx------ 2 root root 16384 8月 17 13:49 lost+found

|

(11).切换Primary和Secondary节点

说明:对主Primary/Secondary模型的drbd服务来讲,在某个时刻只能有一个节点为Primary,因此,要切换两个节点的角色,只能在先将原有的Primary节点设置为Secondary后,才能原来的Secondary节点设置为Primary。

node1:

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

|

[root@node1 ~]# umount /drbd/

[root@node1 ~]# drbdadm secondary web

|

查看状态node1

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

3

4

|

[root@node1 ~]# drbd-overview

0:web/0 Connected Secondary/Secondary UpToDate/UpToDate C r-----

node2:

[root@node2 ~]# drbdadm primary web

|

查看状态node2

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

3

4

|

[root@node2 ~]# drbd-overview

0:web/0 Connected Primary/Secondary UpToDate/UpToDate C r-----

[root@node2 ~]# mkdir /drbd

[root@node2 ~]# mount /dev/drbd0 /drbd/

|

使用下面的命令查看在此前在主节点上复制至此设备的文件是否存在

<colgroup><col style="width: 70px;"><col style="width: 795px;"></colgroup>
|

1

2

3

4

|

[root@node2 ~]# ll /drbd/

总用量 20

-rw-r--r-- 1 root root 884 8月 17 13:50 inittab

drwx------ 2 root root 16384 8月 17 13:49 lost+found

|

十三、DRBD 双主模式配置示例

drbd 8.4中第一次设置某节点成为主节点的命令

<colgroup><col style="width: 70px;"><col style="width: 785px;"></colgroup>
|

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

|

[root@node ~]# drbdadm primary --force resource

配置资源双主模型的示例:

resource mydrbd {

    net {  

            protocol C;   

            allow-two-primaries yes;   

    }

    startup {  

            become-primary-on both;   

    }

    disk {  

            fencing resource-and-stonith;   

    }

    handlers {  

            # Make sure the other node is confirmed   

            # dead after this!   

            outdate-peer "/sbin/kill-other-node.sh";   

    }

    on node1.magedu.com {  

            device  /dev/drbd0;   

            disk    /dev/vg0/mydrbd;   

            address 172.16.200.11:7789;   

            meta-disk       internal;   

    }

    on node2.magedu.com {  

            device  /dev/drbd0;   

            disk    /dev/vg0/mydrbd;   

            address 172.16.200.12:7789;   

            meta-disk       internal;   

    }   

}

|

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 说明:以下命令前面的"./"是在root用户下调用oracle查询信息才使用,如果在oracle或者grid用户下...
    十野早望阅读 4,911评论 0 0
  • 描述 数据镜像软件 DRBD 介绍 分布式块设备复制(Distributed Replicated Block D...
    狗狗胖妞阅读 7,528评论 0 0
  • 近期在linux上搭建了用于分布式存储的----GlusterFS和Ceph这两个开源的分布式文件系统。 前言--...
    ZNB_天玄阅读 2,771评论 0 0
  • 任何一个人都会由他的主宰引向成功,任何一个人都有大于自己的力量,这就是“你自己” 从1997年大学毕业,到今天,已...
    耘梦儿阅读 664评论 5 18
  • 1 webview无法加载页面 在android有些机型反复进去时候会出现网页无法加载的情况 :fail to r...
    ragenzq阅读 709评论 0 0