Linux Chapter07——使用RAID與LVM磁盤陣列技術(shù)

RAID獨(dú)立冗余磁盤陣列

RAID技術(shù)通過把多個(gè)硬盤組合成一個(gè)容量更大抵乓、安全性更好的磁盤陣列伴挚。并把數(shù)據(jù)切割成多個(gè)區(qū)段后分別存放在各個(gè)不同的物理硬盤設(shè)備上,然后利用分散讀寫技術(shù)來提升磁盤陣列整體的性灾炭,同時(shí)把多個(gè)重要數(shù)據(jù)的副本同步到不同的物理硬盤設(shè)備上茎芋,從而起到了非常好的數(shù)據(jù)冗余備份效果
出于成本和技術(shù)方面的考慮,需要針對(duì)不同的需求在數(shù)據(jù)可靠性及讀寫性能上做出權(quán)衡蜈出,制定出滿足各自需求的不同方案田弥。最常見的方案如下


RAID0、1铡原、5偷厦、10

RAID0

RAID0技術(shù)把多塊物理硬盤設(shè)備通過硬件或軟件的方式串聯(lián)在一起商叹,組成一個(gè)大的卷組,并將數(shù)據(jù)依次寫入各個(gè)物理硬盤中只泼。

  • 硬盤設(shè)備的讀寫性能會(huì)提升數(shù)倍

  • 若任意一塊硬盤發(fā)生故障剖笙,將導(dǎo)致整個(gè)系統(tǒng)的數(shù)據(jù)都受到破壞。

  • RAID0技術(shù)能夠有效地提升硬盤數(shù)據(jù)的吞吐速度辜妓,但不具備數(shù)據(jù)備份和錯(cuò)誤修復(fù)能力

  • 數(shù)據(jù)被分別寫入到不同的硬盤設(shè)備中枯途,硬盤A和硬盤B設(shè)備會(huì)分別保存數(shù)據(jù)資料


    RAID0

RAID1

RAID1是將兩塊以上的硬盤進(jìn)行綁定,在寫入數(shù)據(jù)時(shí)籍滴,將數(shù)據(jù)同時(shí)寫入到多塊硬盤設(shè)備上(可以將其視為數(shù)據(jù)的鏡像或備份)酪夷,當(dāng)其中某一塊硬盤發(fā)生故障后,一般會(huì)立即自動(dòng)以熱交換的方式來恢復(fù)數(shù)據(jù)的正常使用


RAID1

RAID1優(yōu)缺點(diǎn)

  • 寫入數(shù)據(jù)時(shí)RAID1的速度會(huì)比RAID0低一些
  • 讀取數(shù)據(jù)時(shí)孽惰,理論讀取速度的峰值可以是硬盤數(shù)量的倍數(shù)
  • 只要有一塊硬盤穩(wěn)定運(yùn)行晚岭,數(shù)據(jù)就不會(huì)損壞⊙Γ可靠性較高

RAID5

RAID5技術(shù)是把硬盤設(shè)備的數(shù)據(jù)奇偶校驗(yàn)信息保存到其他硬盤設(shè)備中坦报。RAID磁盤陣列中數(shù)據(jù)的奇偶校驗(yàn)信息并不是單獨(dú)保存到某一塊硬盤設(shè)備中,而是存儲(chǔ)到除自身以外的其他每一塊硬盤設(shè)備上狂鞋。

  • RAID5技術(shù)實(shí)際上沒有備份硬盤中的真實(shí)數(shù)據(jù)信息片择,而是當(dāng)硬盤設(shè)備出現(xiàn)問題后通過奇偶校驗(yàn)信息來嘗試重建損壞的數(shù)據(jù)。


    RAID5

    RAID5最少由3塊硬盤組成骚揍,使用硬盤切割技術(shù)字管。當(dāng)重復(fù)寫入某個(gè)文件時(shí),RAID5級(jí)別的磁盤陣列組只需要對(duì)應(yīng)一個(gè)奇偶校驗(yàn)信息信不。效率更高嘲叔、存儲(chǔ)成本低

RAID 10

RAID10技術(shù)是RAID1+RAID0的一個(gè)“組合體”
RAID10至少需要4塊硬盤來搭建

  • 兩兩制作RAID1磁盤陣列,以保證數(shù)據(jù)的安全抽活,然后再對(duì)兩個(gè)RAID1磁盤陣列實(shí)時(shí)RAID0硫戈,提高硬盤設(shè)備的讀寫速度


    RAID10

    從上圖中得知,RAID10是先對(duì)信息進(jìn)行分割下硕,然后再兩兩一組制作鏡像丁逝。也就是先將RAID 1作為最低級(jí)別的組合,然后再使用RAID 0將RAID 1磁盤陣列組合到一起梭姓,將它們視為一整塊硬盤

在RAID10中只要壞的不是同一陣列中的所有硬盤果港,那么最多可以損壞50%的硬盤設(shè)備而不丟失數(shù)據(jù)

部署磁盤陣列

在Linux中,我們可以使用mdadm命令糊昙,用于創(chuàng)建辛掠、調(diào)整、監(jiān)控和管理RAID設(shè)備

mdadm 參數(shù) 硬盤名稱
  • -a 檢測設(shè)備名稱
  • -n 指定設(shè)備數(shù)量
  • -l 指定RAID級(jí)別
  • -C 創(chuàng)建
  • -v 顯示過程
  • -f 模擬設(shè)備損壞
  • -r 移除設(shè)備
  • -Q 查看摘要信息
  • -D 查看詳細(xì)信息
  • -S 停止RAID磁盤陣列
mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sdc /dev/sdd /dev/sde /dev/sdf 
表示創(chuàng)建 名稱為 /dev/md0的磁盤陣列
-v 參數(shù)顯示創(chuàng)建的過程
-n 4 表示使用4塊硬盤來部署這個(gè)RAID磁盤陣列
-l 10 代表選擇RAID10方案
然后再加上4塊硬盤的名稱

使用-Q查看簡要信息

[root@linuxprobe ~]# mdadm -Q /dev/md0
/dev/md0: 39.97GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.

將RAID磁盤陣列格式化為Ext4格式

[root@linuxprobe ~]# mkfs.ext4 /dev/md0
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: 0fc0f7e4-b49b-4280-b4e0-64efee997b70
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done  

創(chuàng)建掛載點(diǎn),將硬盤設(shè)備進(jìn)行掛載操作

[root@linuxprobe ~]# mkdir /RAID
[root@linuxprobe ~]# mount /dev/md0 /RAID 

查看/dev/md0磁盤陣列設(shè)備的詳細(xì)信息萝衩,確認(rèn)RAID級(jí)別回挽、陣列大小和硬盤總數(shù)

[root@linuxprobe ~]# mdadm -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Wed Nov 29 15:17:42 2023
        Raid Level : raid10
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Wed Nov 29 15:21:42 2023
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : linuxprobe:0  (local to host linuxprobe)
              UUID : 78b10560:670df6f8:0d021f2c:42d96621
            Events : 19

    Number   Major   Minor   RaidDevice State
       0       8       32        0      active sync set-A   /dev/sdc
       1       8       48        1      active sync set-B   /dev/sdd
       2       8       64        2      active sync set-A   /dev/sde
       3       8       80        3      active sync set-B   /dev/sdf

將創(chuàng)建好的磁盤陣列RAID添加到/etc/fstab文件中,這樣可以確保在每次重啟后RAID磁盤陣列都會(huì)生效

[root@linuxprobe ~]# echo "/dev/md0 /RAID ext4 defaults 0 0">> /etc/fstab 
[root@linuxprobe ~]# cat /etc/fstab 

損壞磁盤陣列及修復(fù)

模擬一下故障猩谊。使得一塊硬盤故障

[root@linuxprobe ~]# mdadm /dev/md0 -f /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md0
[root@linuxprobe ~]# mdadm -D /dev/md0
[root@linuxprobe ~]# mdadm /dev/md0 -r /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md0

購買了新的硬盤設(shè)備后再使用mdadm命令予以替換即可千劈。更換故障的硬盤后再次使用-a參數(shù)進(jìn)行添加操作,系統(tǒng)默認(rèn)會(huì)自動(dòng)開始數(shù)據(jù)的同步工作牌捷,使用-D參數(shù)即可看到整個(gè)過程和進(jìn)度

[root@linuxprobe ~]# mdadm /dev/md0 -a /dev/sdc 
mdadm: added /dev/sdc
[root@linuxprobe ~]# mdadm -D /dev/md0 

磁盤陣列+備份盤

RAID10磁盤陣列中最多允許50%的硬盤設(shè)備發(fā)生故障墙牌。如果同一RAID1磁盤陣列中的硬盤設(shè)備若全部損壞,就會(huì)導(dǎo)致數(shù)據(jù)丟失暗甥。在這樣的情況喜滨,我們可以使用RAID備份盤技術(shù)來預(yù)防這類事故,該技術(shù)的和新就是 需要準(zhǔn)備一塊足夠大的盤撤防,這塊硬盤平時(shí)處于閑置狀態(tài)虽风,一旦RAID磁盤陣列中有硬盤出現(xiàn)故障就會(huì)自動(dòng)替換上去

刪除磁盤陣列

mdadm -S /dev/md0

LVM 邏輯卷管理器

LVM允許用戶對(duì)硬盤資源進(jìn)行動(dòng)態(tài)調(diào)整
LVM是Linux系統(tǒng)用于對(duì)硬盤分區(qū)進(jìn)行管理的一種機(jī)制。為了解決硬盤設(shè)備在創(chuàng)建分區(qū)后不易修改區(qū)分大小的缺陷寄月。LVM技術(shù)是在硬盤分區(qū)和文件系統(tǒng)之間添加了一個(gè)邏輯層提供了一個(gè)抽象的卷組辜膝。可以把多塊硬盤進(jìn)行卷組合并漾肮。這樣厂抖,用戶不必關(guān)心物理設(shè)備的底層架構(gòu)和布局,可以實(shí)現(xiàn)對(duì)硬盤分區(qū)的動(dòng)態(tài)調(diào)整克懊。

各組件間的關(guān)系

  • 物理卷處于LVM中的最底層验游,可以將其理解為物理硬盤、硬盤分區(qū)保檐、或者RAID磁盤陣列
  • 卷組建立在物理卷之上,一個(gè)卷組能夠包含多個(gè)物理卷崔梗,而且在卷組創(chuàng)建之后也可以繼續(xù)向其中添加新的物理卷夜只。
  • 邏輯卷是用卷組中空閑的資源建立的,并且邏輯卷在建立之后可以動(dòng)態(tài)地?cái)U(kuò)展或縮小空間

部署邏輯卷

常用的LVM部署命令


常用的LVM部署命令

新添加兩塊硬盤
讓新添加的兩塊硬盤設(shè)備支持LVM技術(shù)

[root@linuxprobe ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.

把兩塊硬盤設(shè)備加入到storage卷組中

[root@linuxprobe ~]# vgcreate storage /dev/sdb /dev/sdc
Volume group "storage" successfully created
[root@linuxprobe ~]# vgdisplay

切割出一個(gè)約為150MB的邏輯卷設(shè)備

[root@linuxprobe ~]# lvcreate -n vo -l 37 storage

把生成好的邏輯卷進(jìn)行格式化然后掛載使用

[root@linuxprobe ~]# mkfs.ext4 /dev/storage/vo 
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 151552 1k blocks and 38000 inodes
Filesystem UUID: 3eb7ebe0-f2d4-40f8-bfa9-af084f7fc952
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done 

查看掛載狀態(tài)蒜魄,并寫入配置文件扔亥,使其永久生效

echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0">> /etc/

擴(kuò)容邏輯卷

下面對(duì)剛才的分的LVM卷進(jìn)行擴(kuò)容
擴(kuò)容前先卸載設(shè)備和掛載點(diǎn)的關(guān)聯(lián)

[root@linuxprobe ~]# umount /linuxprobe 
  1. 把上一個(gè)實(shí)驗(yàn)中的邏輯卷vo擴(kuò)展至290MB
[root@linuxprobe ~]# lvextend -L 290M /dev/storage/vo 
  Rounding size to boundary between physical extents: 292.00 MiB.
  Size of logical volume storage/vo changed from 148.00 MiB (37 extents) to 292.00 MiB (73 extents).
  Logical volume storage/vo successfully resized
  1. 檢查硬盤的完整性,確認(rèn)目錄結(jié)構(gòu)谈为、內(nèi)容和文件內(nèi)容沒有丟失
[root@linuxprobe ~]# e2fsck -f /dev/storage/vo 
e2fsck 1.44.3 (10-July-2018)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storage/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks
  1. 重置設(shè)備在系統(tǒng)中農(nóng)的容量旅挤,剛才是對(duì)LV設(shè)備進(jìn)行擴(kuò)容操作,但系統(tǒng)內(nèi)核還沒有同步到這部分新修改的信息伞鲫。需要手動(dòng)進(jìn)行同步
[root@linuxprobe ~]# resize2fs /dev/storage/vo 
resize2fs 1.44.3 (10-July-2018)
Resizing the filesystem on /dev/storage/vo to 299008 (1k) blocks.
The filesystem on /dev/storage/vo is now 299008 (1k) blocks long.
  1. 重新掛載硬盤設(shè)備并查看掛載狀態(tài)
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# df -h
Filesystem              Size  Used Avail Use% Mounted on
devtmpfs                959M     0  959M   0% /dev
tmpfs                   976M     0  976M   0% /dev/shm
tmpfs                   976M  9.7M  966M   1% /run
tmpfs                   976M     0  976M   0% /sys/fs/cgroup
/dev/mapper/rhel-root    17G  4.8G   13G  28% /
/dev/nvme0n1p1         1014M  193M  822M  19% /boot
/dev/sda1               2.0G   76M  2.0G   4% /newFS
/dev/sr0                6.7G  6.7G     0 100% /media/cdrom
tmpfs                   196M   16K  196M   1% /run/user/42
tmpfs                   196M  2.3M  193M   2% /run/user/0
/dev/mapper/storage-vo  279M  2.1M  259M   1% /linuxprobe (擴(kuò)容完成)

縮小邏輯卷

相較于擴(kuò)容邏輯卷粘茄,在對(duì)邏輯卷進(jìn)行縮容操作時(shí),數(shù)據(jù)丟失的風(fēng)險(xiǎn)更大。所以在生產(chǎn)環(huán)境執(zhí)行相應(yīng)操作時(shí)柒瓣,一定要提前備份數(shù)據(jù)儒搭。Linux系統(tǒng)規(guī)定,在對(duì)LVM邏輯卷進(jìn)行縮容操作之前芙贫,要先檢查文件系統(tǒng)的完整性

  1. 卸載文件系統(tǒng)
[root@linuxprobe ~]# umount /linuxprobe 

  1. 檢查文件系統(tǒng)的完整性
[root@linuxprobe ~]# e2fsck -f /dev/storage/vo 
e2fsck 1.44.3 (10-July-2018)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storage/vo: 11/74000 files (0.0% non-contiguous), 15507/299008 blocks
  1. 通知系統(tǒng)內(nèi)核將邏輯卷vo的容量減小120M
[root@linuxprobe ~]# resize2fs /dev/storage/vo 120M
resize2fs 1.44.3 (10-July-2018)
Resizing the filesystem on /dev/storage/vo to 122880 (1k) blocks.
The filesystem on /dev/storage/vo is now 122880 (1k) blocks long.

  1. 將LV(邏輯卷)的容量修改為120MB
[root@linuxprobe ~]# lvreduce -L 120M /dev/storage/vo 
  WARNING: Reducing active logical volume to 120.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce storage/vo? [y/n]: y
  Size of logical volume storage/vo changed from 292.00 MiB (73 extents) to 120.00 MiB (30 extents).
  Logical volume storage/vo successfully resized.
  1. 重新掛載文件系統(tǒng)并查看系統(tǒng)狀態(tài)
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# df -h
Filesystem              Size  Used Avail Use% Mounted on
devtmpfs                959M     0  959M   0% /dev
tmpfs                   976M     0  976M   0% /dev/shm
tmpfs                   976M  9.7M  966M   1% /run
tmpfs                   976M     0  976M   0% /sys/fs/cgroup
/dev/mapper/rhel-root    17G  4.8G   13G  28% /
/dev/nvme0n1p1         1014M  193M  822M  19% /boot
/dev/sda1               2.0G   76M  2.0G   4% /newFS
/dev/sr0                6.7G  6.7G     0 100% /media/cdrom
tmpfs                   196M   16K  196M   1% /run/user/42
tmpfs                   196M  2.3M  193M   2% /run/user/0
/dev/mapper/storage-vo  113M  1.6M  103M   2% /linuxprobe (縮容為113M)

邏輯卷快照

LVM還具備快照卷功能丈莺,類似于虛擬機(jī)的還原時(shí)間點(diǎn)功能

  • 快照卷的容量必須等同于邏輯卷的容量
  • 快照卷僅一次有效谜诫,一旦執(zhí)行還原操作后則會(huì)被立即自動(dòng)刪除

填坑 日后補(bǔ)

刪除邏輯卷

當(dāng)生產(chǎn)環(huán)境中想要重新部署LVM或者不再需要使用LVM時(shí),則需要執(zhí)行LVM刪除操作。刪除操作必須按照刪除邏輯卷挖炬、卷組、物理卷設(shè)備這個(gè)順序

  1. 取消邏輯卷與目錄的掛載關(guān)聯(lián)逼庞,刪除配置文件中永久生效的設(shè)備參數(shù)
[root@linuxprobe ~]# umount /linuxprobe 
[root@linuxprobe ~]# vim /etc/fstab 
  1. 刪除邏輯卷設(shè)備
[root@linuxprobe ~]# vim /etc/fstab 
[root@linuxprobe ~]# lvremove /dev/storage/vo 
Do you really want to remove active logical volume storage/vo? [y/n]: y
  Logical volume "vo" successfully removed

  1. 刪除卷組
[root@linuxprobe ~]# vgremove storage 
  Volume group "storage" successfully removed
  1. 刪除物理卷
[root@linuxprobe ~]# pvremove /dev/sdb /dev/sdc 
  Labels on physical volume "/dev/sdb" successfully wiped.
  Labels on physical volume "/dev/sdc" successfully wiped.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宵晚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子媒吗,更是在濱河造成了極大的恐慌仑氛,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闸英,死亡現(xiàn)場離奇詭異锯岖,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)甫何,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門出吹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辙喂,你說我怎么就攤上這事捶牢。” “怎么了巍耗?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵秋麸,是天一觀的道長。 經(jīng)常有香客問我炬太,道長灸蟆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任亲族,我火速辦了婚禮炒考,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霎迫。我一直安慰自己斋枢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布知给。 她就那樣靜靜地躺著瓤帚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缘滥,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天轰胁,我揣著相機(jī)與錄音,去河邊找鬼朝扼。 笑死赃阀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的擎颖。 我是一名探鬼主播榛斯,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼搂捧!你這毒婦竟也來了驮俗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤允跑,失蹤者是張志新(化名)和其女友劉穎王凑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體聋丝,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡索烹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弱睦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片百姓。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖况木,靈堂內(nèi)的尸體忽然破棺而出垒拢,到底是詐尸還是另有隱情,我是刑警寧澤火惊,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布求类,位于F島的核電站,受9級(jí)特大地震影響屹耐,放射性物質(zhì)發(fā)生泄漏尸疆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一张症、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸵贬,春花似錦俗他、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春羡亩,著一層夾襖步出監(jiān)牢的瞬間摩疑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工畏铆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雷袋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓辞居,卻偏偏與公主長得像楷怒,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓦灶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容