GlusterFS 分布式文件系統(tǒng)原理和centos安裝和配置(三)

一儡羔、概述

1冯勉、GlusterFS是集群式NAS存儲(chǔ)系統(tǒng)纷妆,分布式文件系統(tǒng)(POSIX兼容)场梆,Tcp/Ip方式互聯(lián)的一個(gè)并行的網(wǎng)絡(luò)文件系統(tǒng)墅冷,通過原生 GlusterFS 協(xié)議訪問數(shù)據(jù),也可以通過 NFS/CIFS 協(xié)議訪問數(shù)據(jù)或油,沒有元數(shù)據(jù)服務(wù)器寞忿,實(shí)現(xiàn)整個(gè)系統(tǒng)的性能、可靠性和穩(wěn)定性。

2蚊伞、GlusterFS 常見術(shù)語

名稱 解釋
Brick 最基本的存儲(chǔ)單元,表示為trusted storage pool中輸出的目錄缨恒,供客戶端掛載用霹抛。
Volume 一個(gè)卷搓逾。在邏輯上由N個(gè)bricks組成。
FUSE Unix-like OS上的可動(dòng)態(tài)加載的模塊杯拐,允許用戶不用修改內(nèi)核即可創(chuàng)建自己的文件系統(tǒng)霞篡。
Glusterd Gluster management daemon,要在trusted storage pool中所有的服務(wù)器上運(yùn)行端逼。
POSIX 一個(gè)標(biāo)準(zhǔn)朗兵,GlusterFS兼容。

3顶滩、GlusterFS卷類型

基本卷:

(1) distribute volume:分布式卷

(2) stripe volume:條帶卷

(3) replica volume:復(fù)制卷

復(fù)合卷:

(4) distribute stripe volume:分布式條帶卷

(5) distribute replica volume:分布式復(fù)制卷

(6) stripe replica volume:條帶復(fù)制卷

(7) distribute stripe replicavolume:分布式條帶復(fù)制卷

基本卷:

哈希卷(distributed volume余掖,文件通過hash算法在所有brick上分布,文件級(jí)raid0诲祸,不具有容錯(cuò)能力)浊吏;

復(fù)制卷(replicated volume而昨,生產(chǎn)常用救氯,文件同步復(fù)制到多個(gè)brick上,文件級(jí)raid1歌憨,具有容錯(cuò)能力着憨,w性能下降r性能提升);

條帶卷(striped volume务嫡,不建議使用甲抖,單個(gè)文件分布到多個(gè)brick上,支持超大文件心铃,類似raid0准谚,rr方式round-robin,通常用于HPC(high performance compute)中的超大文件(>10G的單個(gè)文件)及高并發(fā)環(huán)境(多人同時(shí)訪問同一個(gè)文件))去扣;

復(fù)合卷:

哈希復(fù)制卷(distributed replicated volume柱衔,生產(chǎn)常用,同時(shí)具有哈希卷和復(fù)制卷的特點(diǎn))愉棱;

哈希條帶卷(distributed striped volume)唆铐;

復(fù)制條帶卷(replicated striped vlume);

哈希復(fù)制條帶卷(distributed replicated striped volume)奔滑;

4艾岂、開源并行FS比較(glusterfs VS moosefs VS lustre VS ceph):
比較維度

比較緯度 Glusterfs Moosefs Lustre Ceph
成熟度 2003發(fā)布第一個(gè)版本lustre1.0,2013年發(fā)布v2.4.0朋其,相當(dāng)成熟王浴,在HPC領(lǐng)域占有絕大比例 2008年發(fā)布第一個(gè)開源版本v1.5脆炎,13年發(fā)布GA版v1.6.27,穩(wěn)定叼耙,比較成熟的開源DFS 2003發(fā)布第一個(gè)版本lustre1.0腕窥,2013年發(fā)布v2.4.0,相當(dāng)成熟筛婉,在HPC領(lǐng)域占有絕大比例 2013年發(fā)布v0.71簇爆,并已添加到linux kernel中作實(shí)驗(yàn)內(nèi)核,目前不成熟有較多bug爽撒,更新穩(wěn)定都是實(shí)驗(yàn)版
穩(wěn)定性 較穩(wěn)定入蛆,無重大bug,已有較多組織或機(jī)構(gòu)應(yīng)用于生產(chǎn)環(huán)境 較穩(wěn)定硕勿,無重大bug 很穩(wěn)定哨毁,在HPC領(lǐng)域應(yīng)用很多 核心組件RADOS較穩(wěn)定,每3個(gè)月更新一次穩(wěn)定版源武,有部分企業(yè)用于生產(chǎn)環(huán)境
復(fù)雜度 簡單扼褪,無元數(shù)據(jù)服務(wù),用戶空間實(shí)現(xiàn)粱栖,架構(gòu)清晰话浇,xlator樹形結(jié)構(gòu) 簡單,用戶空間實(shí)現(xiàn)闹究,代碼規(guī)模較小幔崖,高度模塊化 復(fù)雜度較高,依賴內(nèi)核實(shí)現(xiàn) 較復(fù)雜渣淤,c++實(shí)現(xiàn)赏寇,功能較多
高性能 解除元數(shù)據(jù)瓶頸,并行化數(shù)據(jù)訪問 元數(shù)據(jù)單點(diǎn)瓶頸 高性能价认,HPC領(lǐng)域表現(xiàn)卓越 數(shù)據(jù)分布均衡嗅定,并行化度高
擴(kuò)展性 彈性hash代替元數(shù)據(jù)服務(wù),線性擴(kuò)展用踩,可輕松擴(kuò)展到數(shù)百PB量級(jí)渠退,支持動(dòng)態(tài)擴(kuò)容 可增加存儲(chǔ)server,不能增加MDS 高擴(kuò)展性捶箱,容量可達(dá)數(shù)百PB智什,可在不打斷任何操作的情況下,通過增加新的OSS來實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展 高擴(kuò)展性丁屎,支持10-1000臺(tái)server荠锭,支持TB到PB的擴(kuò)展,當(dāng)組件發(fā)生變化時(shí)(添加或刪除)晨川,自動(dòng)進(jìn)行數(shù)據(jù)的重分布
可用性 多元數(shù)據(jù)服務(wù)設(shè)計(jì)证九,數(shù)據(jù)分布提供三種方式的分割:AFR删豺、DHT、stripe愧怜,支持自動(dòng)復(fù)制和自動(dòng)修復(fù) 元數(shù)據(jù)+日志服務(wù)器呀页,保障元數(shù)據(jù)server,運(yùn)行時(shí)元數(shù)據(jù)放內(nèi)存拥坛,可設(shè)置副本 元數(shù)據(jù)集群蓬蝶,可部署主備切換工作方式,無副本設(shè)計(jì)猜惋,OSS之間可利用共享存儲(chǔ)實(shí)現(xiàn)自動(dòng)故障恢復(fù) 元數(shù)據(jù)集群丸氛,沒有單點(diǎn)故障,多數(shù)據(jù)副本著摔,自動(dòng)管理缓窜、自動(dòng)修復(fù),monitor監(jiān)控集群中所有節(jié)點(diǎn)狀態(tài)谍咆,且可有多個(gè)monitor保證可靠性
可管理性 部署簡單禾锤,易于管理和維護(hù),使用底層FS摹察,ext3/zfs恩掷,客戶端負(fù)載增加;提供管理工具港粱,如卷的擴(kuò)容螃成、數(shù)據(jù)LB旦签、目錄配額及相關(guān)監(jiān)控等 部署簡單查坪,提供web gui監(jiān)控界面,元數(shù)據(jù)恢復(fù)宁炫,文件恢復(fù)偿曙,回收站功能,快照 部署復(fù)雜羔巢,需升級(jí)kernel等望忆,提供管理工具,如設(shè)置目錄stripe 部署較復(fù)雜竿秆,提供工具對(duì)集群進(jìn)行監(jiān)控管理启摄,包括集群狀態(tài),各組件狀態(tài)等
研發(fā)成本 用戶空間實(shí)現(xiàn)幽钢,模塊化堆棧式架構(gòu) 用戶空間實(shí)現(xiàn)歉备,小規(guī)模 高,內(nèi)核空間實(shí)現(xiàn)匪燕,且代碼規(guī)模大 較高蕾羊,代碼規(guī)模大喧笔,功能多
適用性 適用以文件為對(duì)象的存儲(chǔ)體系,適合大文件存儲(chǔ) 小規(guī)模集群龟再,元數(shù)據(jù)瓶頸书闸,內(nèi)存消耗大 大文件,HPC領(lǐng)域 Ceph
NAS兼容 支持NFS利凑、CIFS浆劲、HTTP、FTP哀澈、gluster原生協(xié)議梳侨,與POSIX標(biāo)準(zhǔn)兼容 支持CIFS、NFS日丹,支持標(biāo)準(zhǔn)POSIX接口 支持CIFS走哺、NFS,支持標(biāo)準(zhǔn)POSIX接口 支持CIFS哲虾、NFS丙躏,支持標(biāo)準(zhǔn)POSIX接口
采用指數(shù) ☆☆☆☆ ☆☆☆ ☆☆☆ ☆☆

二、配置安裝

1束凑、環(huán)境

192.168.1.11 gluster-1-1

192.168.1.12 gluster-1-2

192.168.1.13 gluster-1-3

注意:hosts文件添加解析晒旅,時(shí)間同步,關(guān)閉iptables和SELinux汪诉,三臺(tái)各加10G硬盤做存儲(chǔ)數(shù)據(jù)废恋。

2、下載gluster相關(guān)軟件包

vim /etc/yum.repos.d/gfs.repo
http://bits.gluster.org/pub/gluster/glusterfs/3.4.2/x86_64
依賴包:rpcbind    libaio   lvm2-devel
服務(wù)端:yum  install   glusterfs-server glusterfs glusterfs-cli   glusterfs-fuse  glusterfs-libs glusterfs-api 
客戶端:yum  install    glusterfs    glusterfs-fuse  glusterfs-libs 
磁盤分區(qū):mkfs.ext4  -L /brick1  /dev/sdb   分區(qū)扒寄、標(biāo)簽鱼鼓、格式化

3、部署

1)創(chuàng)建目錄并啟動(dòng)服務(wù)
mkdir /brick1
/etc/init.d/glusterd start

2)添加gluster節(jié)點(diǎn)服務(wù)器
gluster peer probe gluster-1-2
gluster peer probe gluster-1-3

3)查看節(jié)點(diǎn)服務(wù)器
gluster  peer  status

4该编、創(chuàng)建卷

1)創(chuàng)建testvol卷(默認(rèn)是哈希卷)
gluster volume create testvol gluster-1-1:/brick1/b1 哈希卷
gluster volume create gs2 replica 2 gluster-1-1:/brick1/b1  gluster-1-2:/brick1/b2 復(fù)制卷

2)啟動(dòng)卷
gluster volume start testvol

3)查看卷
gluster volume info 

4)刪除卷
gluster volume remove-brick testvol gluster-1-2:/brick1/b2
5迄本、客戶端測(cè)試

1)客戶端掛載卷
mount -t glusterfs gluster-1-1:/testvol /mnt

2)測(cè)試
df -h   mount    等
touch  {1..9}.txt
rm 4.txt

6、節(jié)點(diǎn)操作

1)刪除節(jié)點(diǎn)服務(wù)器
gluster peer detach gluster-1-2 不能刪除自己

2)添加節(jié)點(diǎn)服務(wù)器
gluster peer probe gluster-1-2
gluster volume add-brick testvol gluster-1-2:/brick1/b2 (b2下面不能有文件)

3)重新LB课竣,要在閑時(shí)做嘉赎,分兩步,先fix-layout將hash算法重分配于樟,再將數(shù)據(jù)重分配
gluster volume rebalance testvol fix-layout start
gluster volume rebalance testvol start

4)查看rebalance平衡狀態(tài)
gluster volume rebalance testvol status

7公条、刪除卷

1)卸載掛載點(diǎn)
umount /mnt -lf
2)刪除卷
gluster volume stop testvol
gluster volume delete testvol (卷刪除后,內(nèi)容還在)
rm -rf /brick1/b1 

8迂曲、恢復(fù)卷信息

1)卷信息的目錄
ll /var/lib/glusterd/vols/testvol/

2)恢復(fù)命令
gluster volume sync gluster-1-1  all

9靶橱、其他

1)允許可信任客戶端IP
gluster volume set testvol auth.allow 192.168.1.*

2)關(guān)閉gluster的nfs功能
ps -ef | grep nfs
gluster volume set testvol nfs.disable on

10、故障

1)復(fù)制卷數(shù)據(jù)不一致
故障現(xiàn)象:雙副本卷數(shù)據(jù)出現(xiàn)不一致
故障模擬:刪除其中一個(gè)brick數(shù)據(jù)
修復(fù)方法
  cat 文件
 觸發(fā)自修復(fù):遍歷并訪問文件
 find /mnt -type f -print0 | xargs -0 head -c1

2)glusterfs集群節(jié)點(diǎn)配置信息不正確
恢復(fù)復(fù)制卷 brick
 故障現(xiàn)象:雙副本卷中一個(gè)brick損壞
 恢復(fù)流程
a、重新建立故障brick目錄
  mkdir b2
b抓韩、設(shè)置擴(kuò)展屬性(參考另一個(gè)復(fù)制 brick)
 getfattr -d -m . -e hex b1/  獲取擴(kuò)展屬性
 setfattr -n trusted.glusterfs.volume-id -v 0x1fa96ed0a0624ccf9e4f07cb9d84296f b2
 setfattr -n trusted.gfid -v 0x00000000000000000000000000000001  b2
 setfattr -n trusted.glusterfs.dht -v 0x000000010000000000000000ffffffff b2
c纠永、重啟 glusterd服務(wù)
 /etc/init.d/glusterd restart
 gluster volume stop testvol
 gluster volume start testvol
d、觸發(fā)數(shù)據(jù)自修復(fù)
 find /mntpoint -type f -print0 | xargs -0 head -c1 >/dev/null


3)修復(fù)磁盤數(shù)據(jù)(在使用server1時(shí)宕機(jī)谒拴,使用server2替換尝江,執(zhí)行數(shù)據(jù)同步)
gluster volume replace-brick testvol server1:/brick1/b1 server2:/brick1/b1 commit force
gluster volume heal testvol full

GlusterFS 客戶端常用命令

命令 功能
gluster peer probe 添加節(jié)點(diǎn)
gluster peer detach 移除節(jié)點(diǎn)
gluster volume create 創(chuàng)建卷
gluster volume start 啟動(dòng)卷
gluster volume stop 停止卷
gluster volume delete 刪除卷
gluster volume quota enable 開啟卷配額
gluster volume quota enable 關(guān)閉卷配額
gluster volume quota limit-usage 設(shè)定卷配額

創(chuàng)建卷

1、創(chuàng)建分布卷
 gluster volume create dis_vol  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2   gluster-1-3:/brick1/b3
 
2英上、創(chuàng)建復(fù)制卷
 gluster volume create rep_vol replica 2 gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

3炭序、創(chuàng)建條帶卷
 gluster volume create str_vol  stripe 3 gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

4、創(chuàng)建分布條帶卷
 gluster volume create dir_str_vol stripe 4  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

5苍日、創(chuàng)建分布復(fù)制卷
 gluster volume create dir_rep_vol replica 2  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

6惭聂、創(chuàng)建分布條帶復(fù)制
 gluster volume create dis_str_rep_vol stri  2 repl 2  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

7、創(chuàng)建條帶復(fù)制卷
 gluster volume create str_rep_vol stripe 2 replica 2  gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

8相恃、創(chuàng)建分散卷(不常用)
 gluster volume create disperse_vol disperse 4 gluster-1-1:/brick1/b1 gluster-1-2:/brick1/b2  gluster-1-3:/brick1/b3

資源定義

Brick: 存儲(chǔ)的基本單元辜纲,表現(xiàn)為服務(wù)器上可信存儲(chǔ)池的導(dǎo)出目錄
Volume: 卷是bricks的邏輯集合
Cluster: 一組計(jì)算機(jī)組成的集群
Distributed File System: 允許多個(gè)客戶端通過網(wǎng)絡(luò)并發(fā)訪問的文件系統(tǒng)
GFID: 每個(gè)GlusterFs中的文件或者目錄都有一個(gè)128bit的數(shù)字標(biāo)識(shí)稱為GFID
glusterd: 管理守護(hù)進(jìn)程需要運(yùn)行在所有的提供授信存儲(chǔ)池的服務(wù)器上
Namespace: 名稱空間是被創(chuàng)建的一個(gè)抽象容器或環(huán)境用來保存唯一標(biāo)識(shí)符號(hào)
Quorum: 設(shè)置一個(gè)可信的存儲(chǔ)池中最多失效的主機(jī)節(jié)點(diǎn)數(shù)量
Quota: 允許通過目錄或者卷設(shè)置對(duì)磁盤空間使用的限制
Posix: 可移植操作系統(tǒng)接口是IEEE定義的一系列相關(guān)api標(biāo)準(zhǔn)
Vol File: Vol文件是glusterfs進(jìn)程使用的配置文件
Distributed: 分布卷
Replicated: 復(fù)本卷
Distributed Replicated: 分布式復(fù)制卷
Geo-Replication: 異地備份為站點(diǎn)通過局域網(wǎng)、廣域網(wǎng)拦耐、互聯(lián)網(wǎng)提供一個(gè)連續(xù)的異步的和增量復(fù)制服務(wù)
Metedata: 元數(shù)據(jù)定義為關(guān)于數(shù)據(jù)的數(shù)據(jù)描述信息耕腾,在GlusterFs沒有專用的元數(shù)據(jù)存儲(chǔ)內(nèi)容
Extended Attributes: 擴(kuò)展屬性是文件系統(tǒng)的一個(gè)特性 
FUSE: 用戶空間的文件系統(tǒng)是一個(gè)用于類Unix操作系統(tǒng)的可加載內(nèi)核模塊,以允許非特權(quán)用戶在適用內(nèi)核代碼的情況下創(chuàng)建自己的文件系統(tǒng)杀糯。實(shí)現(xiàn)了在用戶空間下運(yùn)行文件系統(tǒng)代碼

創(chuàng)建volume

Distributed:分布式卷扫俺,文件通過hash算法隨機(jī)的分布到由bricks組成的卷上。 
Replicated:復(fù)制式卷固翰,類似raid1狼纬,replica數(shù)必須等于volume中brick所包含的存儲(chǔ)服務(wù)器數(shù),可用性高骂际。 
Striped:條帶式卷疗琉,類似與raid0,stripe數(shù)必須等于volume中brick所包含的存儲(chǔ)服務(wù)器數(shù)方援,文件被分成數(shù)據(jù)塊没炒,以Round Robin的方式存儲(chǔ)在bricks中涛癌,并發(fā)粒度是數(shù)據(jù)塊犯戏,大文件性能好。 
Distributed Striped:分布式的條帶卷拳话,volume中brick所包含的存儲(chǔ)服務(wù)器數(shù)必須是stripe的倍數(shù)(>=2倍)先匪,兼顧分布式和條帶式的功能。 
Distributed Replicated:分布式的復(fù)制卷弃衍,volume中brick所包含的存儲(chǔ)服務(wù)器數(shù)必須是 replica 的倍數(shù)(>=2倍)呀非,兼顧分布式和復(fù)制式的功能。

其他資料:https://www.cnblogs.com/xingxiz/p/10615888.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市岸裙,隨后出現(xiàn)的幾起案子猖败,更是在濱河造成了極大的恐慌,老刑警劉巖降允,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恩闻,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡剧董,警方通過查閱死者的電腦和手機(jī)幢尚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翅楼,“玉大人尉剩,你說我怎么就攤上這事∫汶” “怎么了理茎?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長管嬉。 經(jīng)常有香客問我功蜓,道長,這世上最難降的妖魔是什么宠蚂? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任式撼,我火速辦了婚禮,結(jié)果婚禮上求厕,老公的妹妹穿的比我還像新娘著隆。我一直安慰自己,他們只是感情好呀癣,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布美浦。 她就那樣靜靜地躺著,像睡著了一般项栏。 火紅的嫁衣襯著肌膚如雪浦辨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天沼沈,我揣著相機(jī)與錄音流酬,去河邊找鬼。 笑死列另,一個(gè)胖子當(dāng)著我的面吹牛芽腾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播页衙,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼摊滔,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼阴绢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起艰躺,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤呻袭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后腺兴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棒妨,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年含长,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了券腔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拘泞,死狀恐怖纷纫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情陪腌,我是刑警寧澤辱魁,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站诗鸭,受9級(jí)特大地震影響染簇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜强岸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一锻弓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝌箍,春花似錦青灼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悯衬,卻和暖如春弹沽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背筋粗。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工策橘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人亏狰。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓役纹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親暇唾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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