JBOD磁盤配置和StorCLI命令使用小結

前言

已經實施過2次Hadoop大數據平臺的基礎環境搭建,對于硬盤的RAID模式都不約而同選擇了JBOD,畢竟大數據對于文件系統的管理本身就是基于分布式,由至少3份副本來保障數據可靠性,只是不做RAID后的SAS硬盤讀寫性能就有點慘不忍睹。這次Hadoop大數據平臺工具選擇的是Cloudera,大家感興趣的化也可以瀏覽下它的官網。本篇文章主要介紹如何實現在不停機狀態下在線更換JBOD硬盤。

利用StorCLI命令不停機在線更換JBOD硬盤

更新歷史

2016年12月31日 - 初稿

閱讀原文 - https://wsgzao.github.io/post/jbod/

擴展閱讀

Cloudera - http://www.cloudera.com/


JBOD原理

JBOD ( Just a Bunch Of Disks )不是標準的 RAID 等級,它通常用來表示一個沒有控制軟件提供協調控制的磁盤集合。 JBOD 將多個物理磁盤串聯起來,提供一個巨大的邏輯磁盤。 JBOD 的數據存放機制是由第一塊磁盤開始按順序往后存儲,當前磁盤存儲空間用完后,再依次往后面的磁盤存儲數據。 JBOD 存儲性能完全等同于單塊磁盤,而且也不提供數據安全保護。它只是簡單提供一種擴展存儲空間的機制, JBOD 可用存儲容量等于所有成員磁盤的存儲空間之和。目前 JBOD 常指磁盤柜,而不論其是否提供 RAID 功能。

RAID磁盤陣列配置和調優小結 - https://wsgzao.github.io/post/raid/

參考文檔和工具

StorCLI_RefMan_revf
https://www.broadcom.com/support/download-search/?dk=StorCLI

StorCLI (Command Line) Utility for Storage Management v1.07.07 on Linux
https://www-947.ibm.com/support/entry/portal/docdisplay?lndocid=MIGR-5092950

使用方式

#查詢硬件RAID卡信息
[root@localhost Linux]# cat /proc/scsi/scsi |more

Attached devices:
Host: scsi0 Channel: 02 Id: 00 Lun: 00
  Vendor: IBM      Model: ServeRAID M5210  Rev: 4.62
  Type:   Direct-Access                    ANSI  SCSI revision: 05

#解壓安裝storcli
unzip ibm_utl_sraidmr_storcli-1.07.07_linux_32-64.zip
rpm -Uvh storcli-1.07.07-1.noarch.rpm

#設置軟連接
ln -s /opt/MegaRAID/storcli/storcli64 /bin/storcli
ln -s /opt/MegaRAID/storcli/storcli64 /sbin/storcli

#Raid數量及當前狀態
[root@localhost Linux]# storcli show ctrlcount
Status Code = 0
Status = Success
Description = None

Controller Count = 2

#查詢虛擬磁盤大小,raid結構等
[root@localhost Linux]# storcli /c0 /v0 show
Controller = 0
Status = Success
Description = None


Virtual Drives :
==============

-----------------------------------------------------------
DG/VD TYPE  State Access Consist Cache sCC       Size Name 
-----------------------------------------------------------
0/0   RAID1 Optl  RW     Yes     RWTD  -   278.465 GB      
-----------------------------------------------------------

Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|B=Blocked|Consist=Consistent|
R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency
#可以看出此為RAID1,一個虛擬磁盤,大小為278.465 GB 

#查看control0的物理硬盤
[root@localhost Linux]# storcli /c0 /eall /sall show
Controller = 0
Status = Success
Description = Show Drive Information Succeeded.


Drive Information :
=================

-------------------------------------------------------------------------
EID:Slt DID State DG       Size Intf Med SED PI SeSz Model            Sp 
-------------------------------------------------------------------------
252:16    8 Onln   0 278.465 GB SAS  HDD N   Y  512B ST300MP0035    X U  
252:17    9 Onln   0 278.465 GB SAS  HDD N   Y  512B ST300MP0035    X U  
-------------------------------------------------------------------------

EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign
UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded
CFShld-Configured shielded

#可以看到總計有兩顆硬盤,每一顆大小278.465GB,是否在線等

#查看control1的物理硬盤
[root@localhost Linux]# storcli /c1 /eall /sall show
Controller = 1
Status = Success
Description = Show Drive Information Succeeded.


Drive Information :
=================

------------------------------------------------------------------------
EID:Slt DID State DG      Size Intf Med SED PI SeSz Model            Sp 
------------------------------------------------------------------------
8:0      23 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:1      24 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:2      22 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:3      19 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:4      13 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:5      14 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:6      18 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:7      12 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:8      10 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:9      16 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:10     11 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:11     21 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:12     15 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
8:13      9 JBOD  -  1.0810 TB SAS  HDD N   Y  512B ST1200MM0018   X U  
------------------------------------------------------------------------

EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign
UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded
CFShld-Configured shielded

#可以看到總計有兩顆硬盤,每一顆大小1.0810 TB,是否在線等


#設置硬盤狀態
storcli /c1/e8/s0 show all

storcli /c1/e8/s0 start locate
storcli /c1/e8/s0 set offline
storcli /c1/e8/s0 set online
storcli /c1/e8/s0 set jbod


StorCLI Help

#查看StorCLI幫助信息
[root@localhost Linux]# storcli -h
     Storage Command Line Tool  Ver 1.07.07 Nov 15, 2013

     (c)Copyright 2013, LSI Corporation, All Rights Reserved.


storcli -v 
storcli -h| -help| ? 
storcli -h| -help| ? legacy
storcli show 
storcli show all
storcli show ctrlcount
storcli /cx add vd r[0|1|5|6|00|10|50|60]
    [Size=<VD1_Sz>,<VD2_Sz>,..|all] [name=<VDNAME1>,..] 
    drives=e:s|e:s-x|e:s-x,y,e:s-x,y,z [PDperArray=x][SED]
    [pdcache=on|off|default][pi][DimmerSwitch(ds)=default|automatic(auto)|
    none|maximum(max)|MaximumWithoutCaching(maxnocache)]
    [wt|wb|awb][nora|ra] [direct|cached] [cachevd]
    [Strip=<8|16|32|64|128|256|512|1024>] [AfterVd=X] 
    [Spares = [e:]s|[e:]s-x|[e:]s-x,y] [force][ExclusiveAccess]
storcli /cx add vd each r0 [name=<VDNAME1>,..] [drives=e:s|e:s-x|e:s-x,y]
    [SED] [pdcache=on|off|default][pi] [DimmerSwitch(ds)=default|automatic(auto)|
    none|maximum(max)|MaximumWithoutCaching(maxnocache)] 
    [wt|wb|awb] [nora|ra] [direct|cached] 
    [Strip=<8|16|32|64|128|256|512|1024>] [ExclusiveAccess]
storcli /cx add VD cachecade|nytrocache r[aid][0,1,10, 1EC] 
    drives = [e:]s|[e:]s-x|[e:]s-x,y [WT| WB] [assignvds = 0,1,2] [BOOTVOLSIZE=x]
storcli /cx/ex show all 
storcli /cx/ex show status 
storcli /cx/vx del [cachecade] [force]
storcli /cx delete events
storcli /cx show events [[type= <sincereboot| sinceshutdown| includedeleted|
latest=x| ccincon vd=<0,1,...>] filter=<info|warning|critical|fatal>]
file=<filepath>
storcli /cx show eventloginfo
storcli /cx show health [all]
storcli /cx delete securitykey
storcli /cx set securitykey=xxxxxxxx {passphrase=xxxx} {keyid=xxx}
storcli /cx start Diag Duration=<Val> 
storcli /cx set securitykey keyid=xxx
storcli /cx compare securitykey=xxxxxxxxxx
storcli /cx set termlog[=on|off|offthisboot]
storcli /cx show termlog [type=config|contents]
storcli /cx delete termlog
storcli /cx Compare factorysettings file=<filepath>
storcli /cx Compare factorysettings raw file=<filepath>
storcli /cx set securitykey=xxxxxxxx oldsecuritykey=xxxxxxxx
    {passphrase=xxxx} {keyid=xxx}
storcli /cx/dx show 
storcli /cx/dall show cachecade 
storcli /cx/dx show all 
storcli /cx show freespace
storcli /cx/fall show [all] [securityKey = xxx]
storcli /cx/fall del|delete [securityKey = xxx]
storcli /cx/fall import [preview] [securityKey = xxx]
storcli /cx/vx set ssdcaching=on|off
storcli /cx/dx set security=on
storcli /cx/vx show expansion
storcli /cx show fshinting
storcli /cx/vx set fshinting=<value>
storcli /cx/vx expand Size=<xx> [expandarray]
storcli /cx[/ex]/sx show 
storcli /cx[/ex]/sx show all
storcli /cx[/ex]/sx start rebuild 
storcli /cx[/ex]/sx stop rebuild 
storcli /cx[/ex]/sx pause rebuild 
storcli /cx[/ex]/sx resume rebuild 
storcli /cx[/ex]/sx show rebuild 
storcli /cx[/ex]/sx show health 
storcli /cx[/ex]/sx start copyback target=e:s 
storcli /cx[/ex]/sx stop copyback 
storcli /cx[/ex]/sx pause copyback 
storcli /cx[/ex]/sx resume copyback 
storcli /cx[/ex]/sx show copyback 
storcli /cx[/ex]/sx start initialization  
storcli /cx[/ex]/sx stop initialization  
storcli /cx[/ex]/sx show initialization  
storcli /cx[/ex]/sx start locate  
storcli /cx[/ex]/sx stop locate  
storcli /cx[/ex]/sx show securitykey keyid 
storcli /cx[/ex]/sx add hotsparedrive [DGs=<N|0,1,2...>] [enclaffinity]
    [nonrevertible]
storcli /cx[/ex]/sx delete hotsparedrive
storcli /cx[/ex]/sx spinup
storcli /cx[/ex]/sx spindown
storcli /cx[/ex]/sx set online 
storcli /cx[/ex]/sx set offline 
storcli /cx[/ex]/sx set missing 
storcli /cx[/ex]/sx set jbod 
storcli /cx[/ex]/sx set good [force]  
storcli /cx[/ex]/sx insert dg=A array=B row=C 
storcli /cx/vx set emulationType=0|1
storcli /cx/vx set wrcache=WT|WB|AWB
storcli /cx/vx set rdcache=RA|NoRA
storcli /cx/vx set iopolicy=Cached|Direct
storcli /cx/vx set accesspolicy=RW|RO|Blocked|RmvBlkd
storcli /cx/vx set pdcache=On|Off|Default
storcli /cx/vx set name=<NameString>
storcli /cx/vx set HostAccess=ExclusiveAccess|SharedAccess
storcli /cx/vx set ds=Default|Auto|None|Max|MaxNoCache
storcli /cx/vx set autobgi=On|Off
storcli /cx/vx set pi=Off
storcli /cx/vx show
storcli /cx/vx show all
storcli /cx/vx show init
storcli /cx/vx show cc
storcli /cx/vx show erase
storcli /cx/vx show migrate
storcli /cx/vx show bgi
storcli /cx/vx show autobgi
storcli /cx/vx show trim
storcli /cx set consistencycheck|cc=[off|seq|conc] [delay=value]
    starttime=yyyy/mm/dd hh] [excludevd=x-y,z]
storcli /cx show cc|consistencycheck
storcli /cx show ocr 
storcli /cx set ocr=<on|off>
storcli /cx/vx start init[Full][Force]
storcli /cx/vx start erase [simple|normal|thorough|standard][patternA=<val>]
[patternB=<val>]
storcli /cx/vx start cc[Force]
storcli /cx/vx start migrate type=raidx [option=add|remove 
    drives=[e:]s|[e:]s-x|[e:]s-x,y] [Force] 
storcli /cx/vx stop init
storcli /cx/vx stop erase
storcli /cx/vx stop cc
storcli /cx/vx stop bgi
storcli /cx/vx pause cc
storcli /cx/vx pause bgi
storcli /cx/vx resume cc
storcli /cx/vx resume bgi
storcli /cx show 
storcli /cx show all 
storcli /cx show preservedcache 
storcli /cx/vx delete preservedcache[force] 
storcli /cx[/ex]/sx download src=<filepath> [satabridge] [mode= 5|7]
storcli /cx/ex download src=<filepath> [forceActivate] 
storcli /cx[/ex]/sx secureerase [force]  
storcli /cx[/ex]/sx start erase [simple| normal| thorough | standard| threepass]
   [patternA=<val>] [patternB=<val>]
storcli /cx[/ex]/sx stop erase 
storcli /cx[/ex]/sx show erase 
storcli /cx[/ex]/sx show rawdata pageaddr=<pageaddress in hex> file=<filename> 
storcli /cx[/ex]/sx set bootdrive=<on|off> 
storcli /cx/vx set bootdrive=<on|off>
storcli /cx show bootdrive
storcli /cx show bootwithpinnedcache
storcli /cx set bootwithpinnedcache=<on|off>
storcli /cx show activityforlocate
storcli /cx set activityforlocate=<on|off>
storcli /cx show copyback
storcli /cx set copyback=<on|off> type=smartssd|smarthdd|all 
storcli /cx show jbod
storcli /cx set jbod=<on|off> 
storcli /cx set autorebuild=<on|off> 
storcli /cx show autorebuild
storcli /cx show cachebypass
storcli /cx set cachebypass=<on|off> 
storcli /cx show usefdeonlyencrypt
storcli /cx set usefdeonlyencrypt=<on|off>
storcli /cx show prcorrectunconfiguredareas
storcli /cx set prcorrectunconfiguredareas=<on|off> 
storcli /cx show batterywarning
storcli /cx set batterywarning=<on|off> 
storcli /cx show abortcconerror
storcli /cx set abortcconerror=<on|off> 
storcli /cx show ncq
storcli /cx set ncq=<on|off> 
storcli /cx show maintainpdfailhistory
storcli /cx set maintainpdfailhistory=<on|off> 
storcli /cx show restorehotspare
storcli /cx set restorehotspare=<on|off> 
storcli /cx set bios [state=<on|off>] [Mode=<SOE|BE|HCOE|HSM>] [abs=<on|off>]
storcli /cx show bios 
storcli /cx show alarm
storcli /cx set alarm=<on|off|silence> 
storcli /cx show foreignautoimport
storcli /cx set foreignautoimport=<on|off> 
storcli /cx show directpdmapping
storcli /cx set directpdmapping=<on|off> 
storcli /cx show rebuildrate
storcli /cx set rebuildrate=<value> 
storcli /cx show loadbalancemode
storcli /cx set loadbalancemode=<on|off> 
storcli /cx show eghs
storcli /cx set eghs [state=<on|off>] [eug=<on|off>] [smarter=<on|off>] 
storcli /cx show cacheflushint
storcli /cx set cacheflushint=<value> 
storcli /cx show prrate
storcli /cx set prrate=<value> 
storcli /cx show ccrate
storcli /cx set ccrate=<value> 
storcli /cx show bgirate
storcli /cx set bgirate =<value> 
storcli /cx show dpm 
storcli /cx set dpm =<on|off> 
storcli /cx show sgpioforce 
storcli /cx set sgpioforce =<on|off> 
storcli /cx set supportssdpatrolread =<on|off> 
storcli /cx show migraterate
storcli /cx set migraterate=<value> 
storcli /cx show spinupdrivecount
storcli /cx show wbsupport
storcli /cx set spinupdrivecount=<value> 
storcli /cx show spinupdelay
storcli /cx set spinupdelay=<value> 
storcli /cx show coercion
storcli /cx set coercion=<value> 
storcli /cx show smartpollinterval
storcli /cx set smartpollinterval=<value> 
storcli /cx show eccbucketsize
storcli /cx set eccbucketsize=<value> 
storcli /cx show eccbucketleakrate
storcli /cx set eccbucketleakrate=<value> 
storcli /cx show backplane
storcli /cx set backplane mode=<value> expose=<on/off> 
storcli /cx show perfmode
storcli /cx set perfmode=<value> [maxflushlines=<value> numiostoorder=<value>]
storcli /cx show perfmodevalues
storcli /cx show pi
storcli /cx set pi [state=<on|off>] [import=<on|off>]
storcli /cx show time
storcli /cx set time=<yyyymmdd hh:mm:ss | systemtime> 
storcli /cx show ds
storcli /cx set ds=OFF type=1|2|3|4
storcli /cx set ds=ON type=1|2 [properties]
storcli /cx set ds=ON type=3|4 DefaultLdType=<val> [properties]
storcli /cx set ds [properties] 
storcli /cx show safeid
storcli /cx show rehostinfo
storcli /cx show pci
storcli /cx show ASO
storcli /cx set aso key=<key value> preview
storcli /cx set aso key=<key value>
storcli /cx set aso transfertovault
storcli /cx set aso rehostcomplete
storcli /cx set aso deactivatetrialkey
storcli /cx set factory defaults
storcli /cx download file=<filepath> [fwtype=<val>] [ResetNow] [nosigchk] 
    [noverchk]
storcli /cx flush|flushcache
storcli /cx/px show 
storcli /cx/px show all
storcli /cx/px set linkspeed=0|1.5|3|6|12 
storcli /cx/bbu show 
storcli /cx/bbu set SCAPVPD file=<input file path> VPDPage=<SCapVPDFixed>
storcli /cx/bbu show all 
storcli /cx/bbu show status 
storcli /cx/bbu show properties 
storcli /cx/bbu show learn 
storcli /cx/bbu show gasgauge Offset=xxxx Numbytes=n 
storcli /cx/bbu start learn 
storcli /cx/bbu show modes 
storcli /cx/bbu set [ learnDelayInterval=<val> | bbuMode=<val>  
    |learnStartTime=[DDD HH | off] | autolearnmode=<val> | powermode=sleep | writeaccess=sealed ]
storcli /cx/cv show 
storcli /cx/cv show all 
storcli /cx/cv show status 
storcli /cx/cv show learn 
storcli /cx/cv start learn 
storcli /cx show securitykey keyid 
storcli /cx start patrolread
storcli /cx stop patrolread
storcli /cx pause patrolread
storcli /cx resume patrolread
storcli /cx show patrolRead
storcli /cx show powermonitoringinfo
storcli /cx set patrolread = {{on mode=<auto|manual> }|{off}}
storcli /cx set patrolread [starttime=< yyyy/mm/dd hh>] 
    [maxconcurrentpd =<value>] [includessds=<on|onlymixed|off>]
    [uncfgareas=on|off]
storcli /cx set patrolread delay = <value>
storcli /cx[/ex]/sx show diag paniclog [Query] | [ExtractSlot=x] 
                                         | [EraseSlot=x] [file=filepath]
storcli /cx[/ex]/sx show diag smartlog [file=filepath] 
storcli /cx[/ex]/sx show diag errorlog [file=filepath] 
storcli /cx del Nytrocache [force]
storcli /cx show badblocks
storcli /cx flasherase 
storcli /cx shutdown 
storcli /cx/mx set mode=<Internal | External | Auto> 
storcli /cx/mx show 
storcli /cx transform iMR 
storcli /cx restart 
storcli /cx/vx show BBMT
storcli /cx/vx delete BBMT
storcli /xd add type=CacheDev 
                <devices=comma separated cache devices  | ALL> [force] 
storcli /xd add type=VirtualDrive 
                <devices=comma separated Virtual drives | ALL> 
storcli /xd delete type=<CacheDev | VirtualDrive> 
                        <devices=comma separated cache devices or 
                        Virtual drives as applicable | ALL> 
storcli /xd show type=<CacheDev | VirtualDrive> [state=<assigned|unassigned>] 
storcli /xd show 
storcli /xd show perfmon 
storcli /xd/wd<X|ALL> show 
storcli /xd/wd<X|ALL> show safeid 
storcli /xd set online [Vds=comma separated VD ids] 
storcli /xd/wdX apply key=value 
storcli /cx[/ex]/sx start format [thorough] 
storcli /cx show dequeuelog file=<filepath>


Note:Use 'page=[x]'as the last option in all the commands to set the page break.
      X=lines per page. E.g. 'storcli help page=10'

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容