ceph問題解決運(yùn)維記錄

一彤避、如果出現(xiàn) osd啟動(dòng)報(bào)try_get_map錯(cuò)誤撒强,可以從正常的osd去導(dǎo)出對(duì)應(yīng)版本的epoch评疗,然后導(dǎo)回就可以了

1冻晤、如何導(dǎo)出導(dǎo)入osdmap

1.1先停掉壞的osd,以及一個(gè)好的osd(因?yàn)閏eph-objectstore-tool執(zhí)行時(shí)需要停止osd),然后執(zhí)行導(dǎo)出導(dǎo)入即可

命令例子:其中84是好的osd,85是有問題的osd

ceph-objectstore-tool --op get-osdmap --epoch 145039 --data-path /data1/ceph-osd/ --journal-path /var/log/ceph/ceph-84/journal --type filestore --file osdmap145039

ceph-objectstore-tool --op set-osdmap --epoch 145039 --data-path /data2/ceph-osd/ --journal-path /var/log/ceph/ceph-85/journal --type filestore --file osdmap145039

PS:其中145039為對(duì)應(yīng)的版本號(hào)漱办,data-path與journal-path填寫自己osd對(duì)應(yīng)的路徑

2这刷、找到正確的epoch版本

這個(gè)要通過報(bào)錯(cuò)的osd日志查看,在啟動(dòng)的時(shí)候娩井,osd會(huì)加載一個(gè)epoch版本A暇屋,這個(gè)版本是它正在執(zhí)行的,缺少的epoch版本在它之前洞辣。然后在 dump of recent events中發(fā)現(xiàn)已經(jīng)執(zhí)行的epoch版本B,以及ecoch版本C咐刨。將在max(B,C)到A之間的版本都導(dǎo)入一遍(也可以導(dǎo)入一個(gè)版本,啟動(dòng)一次觀察扬霜,就是太麻煩了)所宰。我日志中A=145068,B=145011,C=145012,所以我把145013到145067之間所有的ecoph版本都導(dǎo)入進(jìn)去了畜挥,結(jié)果正常啟動(dòng)了仔粥。我的日志入下圖

二、處理wrong node的日志報(bào)錯(cuò)

1、產(chǎn)生原因

2個(gè)osd之間的osdmap版本如果相差過大(相差可能在50左右)躯泰,會(huì)導(dǎo)致2個(gè)osd通訊的時(shí)候報(bào)wrong node谭羔。如果偶爾出現(xiàn)一次wrong node,那么問題不大麦向,因?yàn)閛sd某個(gè)操作卡主了瘟裸,然后恢復(fù)獲取了最新版本的osdmap。如果osd日志一直在報(bào)诵竭,說明有osd同步osdmap出現(xiàn)問題话告,會(huì)導(dǎo)致osd down掉,心跳超時(shí)(可能)卵慰,甚至出現(xiàn)osd大量吃內(nèi)存沙郭,導(dǎo)致服務(wù)器掛掉。日志如下:

2裳朋、查看osd的osdmap版本

通過命令查看:ceph daemon osd.xx status? ——xx標(biāo)記對(duì)應(yīng)的osd編號(hào)

命令結(jié)果例子:

{

????"cluster_fsid": "df181181-2154-4816-a2b7-d6eae79980fb",

????"osd_fsid": "d5edacd3-cee7-45eb-90df-e381d8684dfb",

????"whoami": 15,

????"state": "active",

????"oldest_map": 92570,

????"newest_map": 158146,

????"num_pgs": 2105

}

其中newest_map表示osd的最新版本號(hào)

3病线、查看集群的osdmap版本號(hào)

命令:ceph -s

這里:178170時(shí)最新版本號(hào)

4、確定osd版本是否有問題

多次間隔執(zhí)行命令ceph daemon osd.xx status 查看osd版本號(hào)鲤嫡,正確狀態(tài)如下:

4.1送挑、查詢出來的版本號(hào)一直保持跟集群版本號(hào)一致

4.2、小于集群版本號(hào)暖眼,但是在不停增大惕耕,最終會(huì)達(dá)到集群版本號(hào)

5、出現(xiàn)osd不更新osdmap解決辦法

到目前為止诫肠,我沒有找到osd不更新osdmap的根本原因司澎,我使用過ceph daemon osd.xx?dump_blocked_ops 查看是否有阻塞的操作并解決阻塞,但是依然不行区赵,即使返回沒有阻塞,還是不更新浪南×牛可能可以讓osd重新更新的方式:

1、將對(duì)應(yīng)的osd out出集群(osd還是up的)络凿,過一陣觀察一下版本號(hào)(我的就是這樣回復(fù)的)

2骡送、重啟osd

三、cephx:?verify_reply?couldn't?decrypt?with?error:?error?decoding?block?for?decryption報(bào)錯(cuò)

1絮记、問題日志

2摔踱、解決方式:

1、檢查服務(wù)器時(shí)間是否一致

2怨愤、檢查集群中的keyring與本地osd的keyring是否一致:

? ?使用命令:?

? ? ? ? ? ? ? ? ? ?ceph?auth?list從mon中獲取所有osd的keyring,

? ? ? ? ? ? ? ? ? ?cat /var/lib/ceph/osd/ceph-xx/keyring獲取本地osd的keyring


3派敷、去掉驗(yàn)證,重啟所有的mon、osd篮愉,修改ceph.conf中的如下參數(shù)為

? ? auth_cluster_required = none

? ? auth_service_required = none

? ? auth_client_required = none

四腐芍、heartbeat_check:no reply from xxxxx since back 報(bào)錯(cuò)

1、問題日志

2试躏、解決方式

1猪勇、查看服務(wù)器時(shí)間與服務(wù)器網(wǎng)絡(luò)(我的不是這個(gè)問題)

2、一般心跳超時(shí)是其他問題引起的颠蕴,這里可以先調(diào)大心跳超時(shí)時(shí)間(我調(diào)大了心跳超時(shí)泣刹,解決了其他問題之后,就沒有心跳超時(shí)了)犀被,修改配合文件ceph.conf的參數(shù)

? ?mon_osd_report_timeout = 1800? ??

? ? filestore_op_thread_suicide_timeout = 1800

? ? filestore_op_thread_timeout = 600

? ? osd_heartbeat_grace = 600

? ? osd_op_thread_suicide_timeout=1800

? ? osd_op_thread_timeout=36000

這個(gè)配置可以先放到[global]椅您,等解決了問題,在去掉弱判,也可以根據(jù)實(shí)際情況襟沮,自己調(diào)整參數(shù)

五、osd啟動(dòng)慢問題

1.查看日志查看osd卡在哪里

日志調(diào)整級(jí)別:修改配置文件ceph.conf參數(shù)昌腰,添加debug_osd=10(15/20)开伏,數(shù)值越高,打印越多遭商。如果已經(jīng)啟動(dòng)osd,想更改日志級(jí)別固灵,可以通過命令:ceph tell osd.xx injectargs --debug-osd 5

2、根據(jù)日志信息解決問題

我是卡在了load_pgs上劫流,因?yàn)檎麄€(gè)集群狀態(tài)不對(duì)巫玻,而pg數(shù)量又很多,加載很慢祠汇,這時(shí)候需要考慮服務(wù)器壓力仍秤,可以一個(gè)一個(gè)慢慢啟動(dòng),不要一下子啟動(dòng)完可很。

六诗力、PG狀態(tài)為incomplete

1、問題原因

incomplete狀態(tài)表示:Peering過程中由于無法選出權(quán)威日志或者通過choos_acting選出的acting不足以完成數(shù)據(jù)恢復(fù)我抠,(例如針對(duì)糾刪碼苇本,存活的副本數(shù)小于k值)等,導(dǎo)致Peering無法正常完成菜拓。即pg元數(shù)據(jù)丟失瓣窄,無法恢復(fù)pg狀態(tài)

2、解決問題

1纳鼎、使用ceph-objectstore-tool工具將incomplete狀態(tài)的pg標(biāo)記為complete

2俺夕、操作步驟:

? ??操作前提:設(shè)置集群flag:noout nodown noup noin? PS:這里的目的是為了不讓pg分布變化裳凸,我因?yàn)閛sd都起來了,只設(shè)置了noout nodown

? ?第一步:通過命令ceph pg dump_stuck |grepincomplete >incomplete.txt 從集群中導(dǎo)出incomplete狀態(tài)的所有pg

? ? 第二步:通過第一步知道了pg所在的2個(gè)osd在哪里啥么,stop這2個(gè)osd

? ? 第三步:對(duì)這2個(gè)osd上的pg通過命令做標(biāo)記登舞,命令如下

? ? ceph-objectstore-tool --data-path /data4/ceph-osd/ --journal-path /var/log/ceph/ceph-15/journal --type filestore --pgid 9.ea8 --op mark-complete

? ? ceph-objectstore-tool --data-path /data8/ceph-osd/ --journal-path /var/log/ceph/ceph-91/journal --type filestore --pgid 9.ea8 --op mark-complete

? ? 第四步:?jiǎn)?dòng)這2個(gè)osd(啟動(dòng)順序沒有關(guān)系)

? ? 第五步:觀察集群中incomplete是否少了

? ? 第六步:重復(fù)第二步以及之后的操作,直到incomplete沒有

3悬荣、特別說明

3.1菠秒、標(biāo)記complete的過程,可能給導(dǎo)致集群degraded氯迂、misplaced增加践叠,這是正常的

3.2、原因:因?yàn)槲以跇?biāo)記的過程中嚼蚀,缺少了導(dǎo)入導(dǎo)出pg步驟禁灼。我這里沒操作導(dǎo)入導(dǎo)出是因?yàn)閜g數(shù)量有點(diǎn)多,而且pg比較大轿曙,導(dǎo)入導(dǎo)出會(huì)讓2個(gè)osd停太久了弄捕,而且我覺得讓集群自己恢復(fù)比較好

3.3、導(dǎo)入導(dǎo)出pg命令:

ceph-objectstore-tool --data-path /data3/ceph-osd/ --journal-path /var/log/ceph/ceph-2/journal --type filestore --pgid 4.15d5 --op export --file /data10/55/pg4.15d5

ceph-objectstore-tool --data-path /data8/ceph-osd/ --journal-path /var/log/ceph/ceph-5/journal --type filestore --pgid?4.15d5--op import --file /data10/55/pg4.15d5

選擇一個(gè)osd為主导帝,另一個(gè)為副守谓,將一個(gè)導(dǎo)入到另外一個(gè)pg,導(dǎo)入導(dǎo)出需要停止osd您单。以上是將osd.2中的4.15d5導(dǎo)入到osd.5中

七斋荞、PG狀態(tài)為down

1、如果能重啟對(duì)應(yīng)pg的osd,那是最好的虐秦,問題自然解決

2平酿、如果osd對(duì)應(yīng)的數(shù)據(jù)盤損毀或者其他原因無法啟動(dòng)這個(gè)osd

? ??第一步:將這個(gè)osd刪除,命令

? ? ? ? ? ? ? ? ? ?ceph osd crush reweight osd.xx 0

? ? ? ? ? ? ? ? ? ?ceph osd out osd.xx

? ? ? ? ? ? ? ? ? ?ceph osd crush remove osd.xx

? ? ? ? ? ? ? ? ? ?ceph osd rm osd.xx

? ? ? ? ? ? ? ? ? ?ceph auth del osd.xx

? ? ?第二步:清理當(dāng)前osd的硬盤或者新加一個(gè)硬盤

? ??第三步:新啟動(dòng)一個(gè)編號(hào)相同的osd

? ? ?第四部:重復(fù)上面的操作悦陋,處理掉所有有問題的osd蜈彼,如果還有down,沒事俺驶,等集群自己恢復(fù)處理(我就是啟動(dòng)了一個(gè)新的osd,有pg處理incomlepte+down幸逆,我標(biāo)記完了incomlepte,down就自己消失了)

八痒钝、PG狀態(tài)為stale

1秉颗、原因

這個(gè)狀態(tài)的PG沒有被?ceph-osd?更新痢毒,表明存儲(chǔ)這個(gè) PG 的所有節(jié)點(diǎn)可能都?down?了送矩。擁有 PG 拷貝的 OSD 可能會(huì)全部失敗,這種情況下哪替,那一部分的對(duì)象存儲(chǔ)不可用栋荸, monitor 也就不會(huì)收到那些 PG 的狀態(tài)更新了,這些pg就被標(biāo)記為stale

2、解決方法

? ?第一種:osd down了之后能正常起來晌块,那只要啟動(dòng)

? ? 第二種:

? ? ? ? ? ? ? ? 1.使用命令ceph pg dump |grep stale找出stale的pg

? ? ? ? ? ? ? ? 2.使用命令ceph pg force_create_pg $pg_id,這時(shí)pg狀態(tài)變?yōu)閏reating

? ? ? ? ? ? ? ? 3.重啟集群中所有的osd

3爱沟、特殊說明

? ? ?我當(dāng)時(shí)是第二種情況,然后我按上面的步驟操作了匆背。結(jié)果所有的osd啟動(dòng)都卡主了呼伸。我猜測(cè)可能原因:當(dāng)時(shí)我force_create_pg的數(shù)量有3000個(gè),這個(gè)數(shù)量有點(diǎn)多钝尸,所以osd就大量卡住了括享,很久很久才能啟動(dòng),可能有幾個(gè)小時(shí)珍促。所以這個(gè)操作要慎重铃辖,建議如下

1、這個(gè)stale的pg最后處理

2猪叙、一次不要force_create_pg太多娇斩,osd重啟時(shí),一個(gè)重啟成功之后穴翩,在重啟另一個(gè)

九犬第、PG狀態(tài)為inconsistent

這個(gè)比較簡(jiǎn)單,直接執(zhí)行命令:ceph pg repair $pg_id 修復(fù)

十、PG狀態(tài)一直有peering和activating

說明集群中osd有問題藏否,需要解決osd問題瓶殃,我就是有3個(gè)osd問題,我out了這3個(gè)osd副签,這2個(gè)狀態(tài)就很快消失了

十一遥椿、mon出現(xiàn) store is getting too big

1、問題發(fā)現(xiàn):ceph -s 或者mon進(jìn)程死掉看到日志

2淆储、產(chǎn)生原因

產(chǎn)生了大量的epoch冠场,導(dǎo)致mon的store.db的數(shù)據(jù)極速膨脹。這個(gè)是我集群出現(xiàn)問題之后才出現(xiàn)的本砰。我之前集群正常時(shí)沒有這個(gè)現(xiàn)象碴裙。不知道等集群正常之后,會(huì)不會(huì)自己恢復(fù)正常点额。

3舔株、解決方法

第一種:對(duì)數(shù)據(jù)進(jìn)行壓縮,使用命令?ceph tell mon.ceph163 compact? (ceph163是我mon的名稱) 还棱。

第二種:使用ceph-mon?-i?HOST?--compact進(jìn)行壓縮啟動(dòng) 载慈,這里的host我使用的是ceph163,主機(jī)名稱

說明:不管使用哪一種珍手,都要注意一點(diǎn):操作壓縮時(shí)办铡,硬盤都會(huì)先擴(kuò)大然后再縮小的辞做,所以要留足空間。第二種的優(yōu)勢(shì)在于可以使修改ceph.conf中的參數(shù)mon_data=/data10/ceph153路徑生效寡具。我后來的mon數(shù)據(jù)太大了秤茅,我就更新路徑到了數(shù)據(jù)盤:只要把對(duì)應(yīng)的mon數(shù)據(jù)存數(shù)據(jù)mv到其他目錄即可

第三種:等集群正常了,修改mon的配置參數(shù)試試(未驗(yàn)證童叠,參數(shù)可以調(diào)小一些)

? ??mon_min_osdmap_epochs=500

? ? mon_max_pgmap_epochs=500

? ? mon_max_mdsmap_epochs=500

4框喳、特別注意:

? ? ?默認(rèn)當(dāng)mon所在存儲(chǔ)應(yīng)硬盤剩余5%空閑時(shí),mon進(jìn)程會(huì)自殺厦坛。

十二帖努、osd節(jié)點(diǎn)正常移除

將對(duì)應(yīng)osd節(jié)點(diǎn)設(shè)置為out即可(osd進(jìn)程依然存在),它會(huì)自動(dòng)移除數(shù)據(jù)并把對(duì)應(yīng)數(shù)據(jù)盤的數(shù)據(jù)刪除粪般,等到數(shù)據(jù)移除完畢拼余,正常關(guān)閉刪除osd即可

命令:ceph osd out osd.xx

十三、集群整體暫時(shí)關(guān)閉(比如要遷移機(jī)房)

當(dāng)需要遷移服務(wù)器亩歹,需要關(guān)閉集群時(shí)匙监,先設(shè)置ceph osd set nodown?ceph osd set noup?ceph osd set noout?ceph osd set nobackfill?ceph osd set norecover 保持集群不變,然后關(guān)閉各個(gè)osd,關(guān)閉mon,關(guān)閉rgw小作。

十四亭姥、集群出現(xiàn)問題時(shí),常規(guī)操作命令

ceph osd set norebalance

? ? ? ? ——禁止集群pg做從均衡顾稀,當(dāng)出現(xiàn)問題時(shí)达罗,可以設(shè)置,用于排查問題

ceph osd set nobackfill? ?

? ? ? ? ——禁止修復(fù)數(shù)據(jù) backfill静秆,當(dāng)出現(xiàn)問題時(shí),我們暫時(shí)不想修復(fù)數(shù)據(jù)粮揉,可以使用,配合nobackfill 一起使用

ceph osd set norecover??

? ? ? ? ——禁止修復(fù)數(shù)據(jù) recover抚笔,當(dāng)出現(xiàn)問題時(shí),我們暫時(shí)不想修復(fù)數(shù)據(jù)扶认,可以使用,配合nobackfill? ?一起使用

ceph osd set nodown? ?

? ? ? ? ——當(dāng)集群出現(xiàn)問題殊橙,osd一會(huì)兒up辐宾,一個(gè)down的時(shí)候,可以使用這個(gè)命令膨蛮,禁止osd down

ceph osd set noup? ? ??

? ? ? ? ?——當(dāng)集群出現(xiàn)問題叠纹,osd一會(huì)兒up,一個(gè)down的時(shí)候敞葛,可以使用這個(gè)命令誉察,禁止osd up

ceph osd set noout? ? ?

? ? ? ? ——禁止集群中的osd自動(dòng)因?yàn)殚L(zhǎng)時(shí)間down,而out?

ceph osd set nodeeep-scrub??

? ? ? ? ——不做深度處理取消使用對(duì)應(yīng)的unset即可制肮,比如ceph osd unset noout

ceph osd out osd.xx? 設(shè)置單個(gè)osd的狀態(tài)為out

ceph osd in osd.xx? ??設(shè)置單個(gè)osd的狀態(tài)為in

ceph osd down osd.xx??設(shè)置單個(gè)osd的狀態(tài)為down

ceph tell osd.xx injectargs?--debug-osd 20? ? 實(shí)時(shí)修改osd.xx的日志級(jí)別冒窍,不需要重啟osd

ceph tell?mon.xx injectargs?--debug-mon?20? 實(shí)時(shí)修改mon的日志級(jí)別,不需要重啟mon

ceph?tell?osd.*?injectargs?--osd_recovery_sleep?1? 單位秒豺鼻,剛開始設(shè)置為1综液,怕服務(wù)器有壓力,觀察之后可以去掉設(shè)置為0

ceph?tell?osd.*?injectargs?--osd_max_backfills?1? 調(diào)整恢復(fù)線程數(shù)儒飒,可以根據(jù)實(shí)際情況調(diào)整

ceph?tell?osd.*?injectargs?--osd_recovery_op_priority?60? 調(diào)整恢復(fù)線程的級(jí)別

ceph daemon osd.xx status? 查看osd.xx的狀態(tài)谬莹,主要看osdmap版本號(hào)

ceph pg dump 查看所有的pg信息

ceph pg dump_stuck stale 查看pg狀態(tài)為stale的數(shù)據(jù)

ceph pg dump_stuck inactive查看pg狀態(tài)為inactive的數(shù)據(jù)

ceph pg dump_stuck unclean查看pg狀態(tài)為unclean的數(shù)據(jù)

ceph -s 查看集群情況

ceph osd tree 查看osd狀態(tài)樹

ceph health detail 查看集群健康詳情

ceph pg pg_id query 查看某個(gè)pg信息

ceph osd getmap -o osdmap.bin查看osdmap圖

ceph-dencoder?type?OSDMap?import?osdmap_197?decode?dump_json 將osdmap導(dǎo)出成json格式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市桩了,隨后出現(xiàn)的幾起案子附帽,更是在濱河造成了極大的恐慌,老刑警劉巖井誉,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蕉扮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡颗圣,警方通過查閱死者的電腦和手機(jī)喳钟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來在岂,“玉大人奔则,你說我怎么就攤上這事”挝纾” “怎么了易茬?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)及老。 經(jīng)常有香客問我抽莱,道長(zhǎng),這世上最難降的妖魔是什么骄恶? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任岸蜗,我火速辦了婚禮,結(jié)果婚禮上叠蝇,老公的妹妹穿的比我還像新娘璃岳。我一直安慰自己,他們只是感情好悔捶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布铃慷。 她就那樣靜靜地躺著,像睡著了一般蜕该。 火紅的嫁衣襯著肌膚如雪犁柜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天堂淡,我揣著相機(jī)與錄音馋缅,去河邊找鬼扒腕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛萤悴,可吹牛的內(nèi)容都是我干的瘾腰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼覆履,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蹋盆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起硝全,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤栖雾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后伟众,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體析藕,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年凳厢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了噪径。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡数初,死狀恐怖找爱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泡孩,我是刑警寧澤车摄,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站仑鸥,受9級(jí)特大地震影響吮播,放射性物質(zhì)發(fā)生泄漏眼俊。R本人自食惡果不足惜意狠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一疮胖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澎灸,春花似錦院塞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汹族。三九已至萧求,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間顶瞒,已是汗流浹背夸政。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人法绵。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓朋譬,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親徙赢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355