Linux磁盤管理及LVM講解

硬盤接口

從整體的角度上浦译,硬盤接口分為IDE桃序、SATA杖虾、SCSI和SAS四種,IDE接口硬盤多用于家用產(chǎn)品中媒熊,也部分應(yīng)用于服務(wù)器奇适,SCSI接口的硬盤則主要應(yīng)用于服務(wù)器市場,而SAS只在高端服務(wù)器上芦鳍,價格昂貴嚷往。

硬盤種類

SATA硬盤:用SATA接口的硬盤又叫串口硬盤,是以后PC機的主流發(fā)展方向柠衅,因為其有較強的糾錯能力皮仁,錯誤一經(jīng)發(fā)現(xiàn)能自動糾正,這樣就大大的提高了數(shù)據(jù)傳輸?shù)陌踩苑蒲纭P碌腟ATA 使用了差動信號系統(tǒng)”differential-signal-amplified-system”贷祈。這種系統(tǒng)能有效的將噪聲從正常訊號中濾除,良好的噪聲濾除能力使得SATA只要使用低電壓操作即可喝峦,和 Parallel ATA 高達5V的傳輸電壓相比势誊,SATA 只要0.5V(500mv) 的峰對峰值電壓即可操作于更高的速度之上∫ゴ溃”比較正確的說法是:峰對峰值’差模電壓'”粟耻。一般轉(zhuǎn)速可達7200轉(zhuǎn)/分。
SCSI硬盤:SCSI硬盤即采用SCSI接口的硬盤眉踱。 優(yōu)點:SCSI接口具有應(yīng)用范圍廣挤忙、多任務(wù)、帶寬大谈喳、CPU占用率低饭玲,以及熱插拔等。它由于性能好叁执、穩(wěn)定性高,因此在服務(wù)器上得到廣泛應(yīng)用矮冬。缺點:由于SCSI硬盤價格非常昂貴谈宛,所以一般的PC是不會使用SCSI硬盤。 一般轉(zhuǎn)速可達10000轉(zhuǎn)/分胎署。
SAS硬盤:SAS(Serial Attached SCSI)即串行連接SCSI吆录,是新一代的SCSI技術(shù),和現(xiàn)在流行的Serial ATA(SATA)硬盤相同琼牧,都是采用串行技術(shù)以獲得更高的傳輸速度恢筝,并通過縮短連結(jié)線改善內(nèi)部空間等哀卫。改善存儲系統(tǒng)的效能、可用性和擴充性撬槽。 一般轉(zhuǎn)速可達15000轉(zhuǎn)/分此改,甚至更高。

分區(qū)符認識

MBR概述:全稱為Master Boot Record侄柔,即硬盤的主引導(dǎo)記錄共啃。
*硬盤的0柱面、0磁頭暂题、1扇區(qū)稱為主引導(dǎo)扇區(qū)(也叫主引導(dǎo)記錄MBR)移剪。它由三個部分組成,主引導(dǎo)程序薪者、硬盤分區(qū)表DPT(Disk Partition table)和分區(qū)有效標志(55AA)纵苛。在總共512字節(jié)的主引導(dǎo)扇區(qū)里主引導(dǎo)程序(boot loader)占446個字節(jié),第二部分是Partition table區(qū)(分區(qū)表)言津,即DPT攻人,占64個字節(jié),硬盤中分區(qū)有多少以及每一分區(qū)的大小都記在其中纺念。第三部分是magic number贝椿,占2個字節(jié),固定為55AA陷谱。

分區(qū)編號:主分區(qū)1-4 烙博,邏輯分區(qū)5……
LINUX規(guī)定:邏輯分區(qū)必須建立在擴展分區(qū)之上,而不是建立在主分區(qū)上
分區(qū)作用:
主分區(qū):主要是用來啟動操作系統(tǒng)的烟逊,它主要放的是操作系統(tǒng)的啟動或引導(dǎo)程序渣窜,/boot分區(qū)最好放在主分區(qū)上
擴展分區(qū)不能使用的,它只是做為邏輯分區(qū)的容器存在的宪躯,先創(chuàng)建一個擴展分區(qū)乔宿,在拓展分區(qū)之上創(chuàng)建邏輯分區(qū);我們真正存放數(shù)據(jù)的是主分區(qū)和邏輯分區(qū)访雪,大量數(shù)據(jù)都放在邏輯分區(qū)中详瑞。
注意:使用分區(qū)工具fdisk對磁盤進行操作,分區(qū)臣缀,格式化(重點)
注意:
邏輯分區(qū)和拓展分區(qū)坝橡,拓展分區(qū)是邏輯分區(qū)的資源池。拓展分區(qū)不能單獨使用。
主分區(qū)+擴展分區(qū) 最多只能有4個
擴展分區(qū)可以是0個,最多是1個
擴展分區(qū)不能直接使用绩衷,擴展分區(qū)必須首先創(chuàng)建成邏輯分區(qū)才能使用
邏輯分區(qū)可以是0個 1個 多個
查看磁盤允扇;ls /dev/sd*
命名方式: /dev/sd[a-z]n
其中:a-z 表示設(shè)備的序號啤挎,如sda表示第一塊scsi硬盤胡控,sdb就是第二塊……
n 表示每塊磁盤上劃分的磁盤分區(qū)編號

文件系統(tǒng)與數(shù)據(jù)資料

用戶在硬件存儲設(shè)備中執(zhí)行的文件建立呜师、寫入框杜、讀取蝶押、修改踱蠢、轉(zhuǎn)存與控制等操作都是依靠文件系統(tǒng)來完成的。文件系統(tǒng)的作用是合理規(guī)劃硬盤播聪,以保證用戶正常的使用需求朽基。Linux系統(tǒng)支持數(shù)十種的文件系統(tǒng),而最常見的文件系統(tǒng)如下所示离陶。
Ext3:是一款日志文件系統(tǒng)稼虎,能夠在系統(tǒng)異常宕機時避免文件系統(tǒng)資料丟失,并能自動修復(fù)數(shù)據(jù)的不一致與錯誤招刨。然而霎俩,當硬盤容量較大時,所需的修復(fù)時間也會很長沉眶,而且也不能百分之百地保證資料不會丟失打却。它會把整個磁盤的每個寫入動作的細節(jié)都預(yù)先記錄下來,以便在發(fā)生異常宕機后能回溯追蹤到被中斷的部分谎倔,然后嘗試進行修復(fù)柳击。
Ext4:Ext3的改進版本,作為RHEL 6系統(tǒng)中的默認文件管理系統(tǒng)片习,它支持的存儲容量高達1EB(1EB=1,073,741,824GB)捌肴,且能夠有無限多的子目錄。另外藕咏,Ext4文件系統(tǒng)能夠批量分配block塊状知,從而極大地提高了讀寫效率。
XFS:是一種高性能的日志文件系統(tǒng)孽查,而且是RHEL 7中默認的文件管理系統(tǒng)饥悴,它的優(yōu)勢在發(fā)生意外宕機后尤其明顯,即可以快速地恢復(fù)可能被破壞的文件盲再,而且強大的日志功能只用花費極低的計算和存儲性能西设。并且它最大可支持的存儲容量為18EB,這幾乎滿足了所有需求答朋。
EXT4;是cenots6默認的文件管理系統(tǒng)
XFS贷揽;是centos7默認的文件系統(tǒng)

fdisk管理分區(qū)

參數(shù) 作用
m 查看全部可用的參數(shù)
n 添加新的分區(qū)
d 刪除某個分區(qū)信息
l 列出所有可用的分區(qū)類型
t 改變某個分區(qū)的類型
p 查看分區(qū)表信息
w 保存并退出
q 不保存直接退出

第一步:關(guān)機添加磁盤

第二步:查看磁盤
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb

第三步:fdisk創(chuàng)建主分區(qū)
[root@ken ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xe140b235.
Command (m for help): n #新建分區(qū)
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #選擇主分區(qū)
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048): #分區(qū)磁盤起始位,默認值绿映,回車即可
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G #磁盤大小選擇,加號不能省略,回車即可
Partition 1 of type Linux and of size 5 GiB is set
Command (m for help): P #查看分區(qū)是否建立
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe140b235
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
Command (m for help): W #w保存退出,q是不保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

第四步:查看磁盤
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1

第五步:格式化叉弦,安裝文件系統(tǒng)
[root@ken ~]# mkfs.xfs /dev/sdb1 #格式化成centos7系統(tǒng)默認的文件系統(tǒng)類型XFS
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

第六步:掛載磁盤至本地目錄
[root@ken ~]# mkdir /xfs_ken #創(chuàng)建本地目錄
[root@ken ~]# mount /dev/sdb1 /xfs_ken #使用mount進行掛載

第七步:查看掛載信息
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 5.0G 33M 5.0G 1% /xfs_ken

第八步:開機自動掛載
方法一:系統(tǒng)容易起不來
echo “/dev/sdb1 /xfs_ken xfs defaults 0 0” >> /etc/fstab
方法二:
[root@ken ~]# echo “mount /dev/sdb1 /xfs_ken” >> /etc/rc.local
[root@ken ~]# chmod +x /etc/rc.d/rc.local

fdisk分區(qū)演示–創(chuàng)建邏輯分區(qū)

第一步:fdisk添加擴展分區(qū)
[root@ken ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n #添加新分區(qū)
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #選擇擴展分區(qū)
Partition number (2-4, default 2):
First sector (10487808-41943039, default 10487808):
Using default value 10487808
Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +5G #5G大小
Partition 2 of type Extended and of size 5 GiB is set
Command (m for help): P #查看分區(qū)
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe140b235
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 20973567 5242880 5 Extended
Command (m for help): w #保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

第二步:創(chuàng)建邏輯分區(qū)
[root@ken ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #創(chuàng)建邏輯分區(qū)
Adding logical partition 5
First sector (10489856-20973567, default 10489856):
Using default value 10489856
Last sector, +sectors or +size{K,M,G} (10489856-20973567, default 20973567): +10G #邏輯分區(qū)大小不能超過擴展分區(qū)大小
Value out of range.
Last sector, +sectors or +size{K,M,G} (10489856-20973567, default 20973567): +2g
Unsupported suffix: ‘g’.
Supported: 10^N: KB (KiloByte), MB (MegaByte), GB (GigaByte)
2^N: K (KibiByte), M (MebiByte), G (GibiByte)
Last sector, +sectors or +size{K,M,G} (10489856-20973567, default 20973567): +2G
Partition 5 of type Linux and of size 2 GiB is set
Command (m for help): P
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe140b235
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 20973567 5242880 5 Extended
/dev/sdb5 10489856 14684159 2097152 83 Linux
Command (m for help): W
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
輸入partprobe進行磁盤刷新或者重啟丐一。

第三步:創(chuàng)建文件系統(tǒng)
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb5
[root@ken ~]# mkfs.xfs /dev/sdb5
meta-data=/dev/sdb5 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

第四步:開機自動掛載
[root@ken ~]# echo “mount /dev/sdb5 /xfs_ken” >> /etc/rc.local

驗證寫入位置

第一步:掛載磁盤
[root@ken ~]# vim /etc/fstab
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@ken ~]# mount -a #可以吧文件fsta里面未掛載的磁盤進行掛載
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 5.0G 33M 5.0G 1% /xfs_ken

第二步:寫入內(nèi)容
[root@ken ~]# touch /xfs_ken/{1..100}.txt
[root@ken ~]# ls /xfs_ken/
100.txt 17.txt 24.txt 31.txt 39.txt 46.txt 53.txt 60.txt 68.txt 75.txt 82.txt 8.txt 97.txt
10.txt 18.txt 25.txt 32.txt 3.txt 47.txt 54.txt 61.txt 69.txt 76.txt 83.txt 90.txt 98.txt
11.txt 19.txt 26.txt 33.txt 40.txt 48.txt 55.txt 62.txt 6.txt 77.txt 84.txt 91.txt 99.txt
12.txt 1.txt 27.txt 34.txt 41.txt 49.txt 56.txt 63.txt 70.txt 78.txt 85.txt 92.txt 9.txt
13.txt 20.txt 28.txt 35.txt 42.txt 4.txt 57.txt 64.txt 71.txt 79.txt 86.txt 93.txt
14.txt 21.txt 29.txt 36.txt 43.txt 50.txt 58.txt 65.txt 72.txt 7.txt 87.txt 94.txt
15.txt 22.txt 2.txt 37.txt 44.txt 51.txt 59.txt 66.txt 73.txt 80.txt 88.txt 95.txt
16.txt 23.txt 30.txt 38.txt 45.txt 52.txt 5.txt 67.txt 74.txt 81.txt 89.txt 96.txt
[root@ken ~]#
[root@ken ~]# umount /xfs_ken/
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@ken ~]# ls /xfs_ken/

第三步:再次掛載磁盤
[root@ken ~]# mkdir /kenken
[root@ken ~]# mount /dev/sdb1 /kenken
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 5.0G 33M 5.0G 1% /kenken
[root@ken ~]# ls /kenken
100.txt 17.txt 24.txt 31.txt 39.txt 46.txt 53.txt 60.txt 68.txt 75.txt 82.txt 8.txt 97.txt
10.txt 18.txt 25.txt 32.txt 3.txt 47.txt 54.txt 61.txt 69.txt 76.txt 83.txt 90.txt 98.txt
11.txt 19.txt 26.txt 33.txt 40.txt 48.txt 55.txt 62.txt 6.txt 77.txt 84.txt 91.txt 99.txt
12.txt 1.txt 27.txt 34.txt 41.txt 49.txt 56.txt 63.txt 70.txt 78.txt 85.txt 92.txt 9.txt
13.txt 20.txt 28.txt 35.txt 42.txt 4.txt 57.txt 64.txt 71.txt 79.txt 86.txt 93.txt
14.txt 21.txt 29.txt 36.txt 43.txt 50.txt 58.txt 65.txt 72.txt 7.txt 87.txt 94.txt
15.txt 22.txt 2.txt 37.txt 44.txt 51.txt 59.txt 66.txt 73.txt 80.txt 88.txt 95.txt
16.txt 23.txt 30.txt 38.txt 45.txt 52.txt 5.txt 67.txt 74.txt 81.txt 89.txt 96.txt

添加交換分區(qū)

SWAP(交換)分區(qū)是一種通過在硬盤中預(yù)先劃分一定的空間,然后將把內(nèi)存中暫時不常用的數(shù)據(jù)臨時存放到硬盤中淹冰,以便騰出物理內(nèi)存空間讓更活躍的程序服務(wù)來使用的技術(shù)库车,其設(shè)計目的是為了解決真實物理內(nèi)存不足的問題。但由于交換分區(qū)畢竟是通過硬盤設(shè)備讀寫數(shù)據(jù)的樱拴,速度肯定要比物理內(nèi)存慢柠衍,所以只有當真實的物理內(nèi)存耗盡后才會調(diào)用交換分區(qū)的資源。
交換分區(qū)的創(chuàng)建過程與前文講到的掛載并使用存儲設(shè)備的過程非常相似晶乔。在對/dev/sdb存儲設(shè)備進行分區(qū)操作前珍坊,有必要先說一下交換分區(qū)的劃分建議:在生產(chǎn)環(huán)境中,交換分區(qū)的大小一般為真實物理內(nèi)存的1.5~2倍正罢,為了讓大家更明顯地感受交換分區(qū)空間的變化阵漏,這里取出一個大小為5GB的主分區(qū)作為交換分區(qū)資源。在分區(qū)創(chuàng)建完畢后保存并退出即可:

創(chuàng)建交換分區(qū)SWAP–磁盤

第一步:創(chuàng)建分區(qū)
[root@ken ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): p
Partition number (3,4, default 3):
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): +2G
Partition 3 of type Linux and of size 2 GiB is set
Command (m for help): P
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe140b235
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 20973567 5242880 5 Extended
/dev/sdb3 20973568 25167871 2097152 83 Linux
/dev/sdb5 10489856 14684159 2097152 83 Linux
/dev/sdb6 14686208 18880511 2097152 83 Linux
/dev/sdb7 18882560 20973567 1045504 83 Linux
Command (m for help): W
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

第二步:識別新創(chuàng)建的分區(qū)
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb5 /dev/sdb6 /dev/sdb7
[root@ken ~]# partprobe #加載新建分區(qū)
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5 /dev/sdb6 /dev/sdb7

第三步:格式化為swap類型
[root@ken ~]# mkswap /dev/sdb3
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=b184f890-2ec4-417d-9aef-1ac87a78464b

第四步:啟動swap
[root@ken ~]# free -h
total used free shared buff/cache available
Mem: 974M 89M 751M 7.6M 133M 733M
Swap: 2.0G 0B 2.0G
[root@ken ~]# swapon /dev/sdb3
[root@ken ~]# free -h
total used free shared buff/cache available
Mem: 974M 90M 750M 7.6M 133M 732M
Swap: 4.0G 0B 4.0G
[root@ken ~]#

第五步:開機自啟
方法一:
echo “/dev/sdb3 swap swap defaults 0 0” >> /etc/fstab
方法二:
echo “swapon /dev/sdb3” >> /etc/rc.local

創(chuàng)建交換分區(qū)SWAP–本地文件

第一步:創(chuàng)建目錄
[root@ken ~]# mkdir /swap

第二步:創(chuàng)建文件
[root@ken ~]# dd if=/dev/zero of=/swap/swap bs=2M count=2014
2014+0 records in
2014+0 records out
4223664128 bytes (4.2 GB) copied, 29.3039 s, 144 MB/s

第三步:格式化
[root@ken ~]# mkswap /swap/swap
Setting up swapspace version 1, size = 4124668 KiB
no label, UUID=211cb23a-49b5-46fc-b568-f167d4b6d06a

第四步:寫入文件
[root@ken ~]# echo “/swap/swap swap swap defaults 0 0” >> /etc/fsta
[root@ken ~]# mount -a
[root@ken ~]# free -h
total used free shared buff/cache available
Mem: 974M 85M 69M 7.6M 819M 712M
Swap: 4.0G 0B 4.0G
[root@ken ~]# swapon -a
swapon: /swap/swap: insecure permissions 0644, 0600 suggested.
[root@ken ~]# free -h
total used free shared buff/cache available
Mem: 974M 88M 66M 7.6M 819M 709M
Swap: 7.9G 0B 7.9G

第五步:修改權(quán)限
[root@ken ~]# chmod 0600 /swap/swap

關(guān)掉交換分區(qū)
[root@ken ~]# swapoff -a
[root@ken ~]# free -h
total used free shared buff/cache available
Mem: 974M 83M 70M 7.6M 820M 714M
Swap: 0B 0B 0B

LVM邏輯卷管理器

實戰(zhàn)場景:對于生產(chǎn)環(huán)境下的服務(wù)器來說,如果存儲數(shù)據(jù)的分區(qū)磁盤空間不夠了怎么辦?
答:只能換一個更大的磁盤翻具。如果用了一段時間后履怯,空間又不夠了,怎么辦裆泳?再加一塊更大的叹洲?換磁盤的過程中,還需要把數(shù)據(jù)從一個硬盤復(fù)制到另一個硬盤工禾,過程太慢了运提。
解決方案:使用LVM在線動態(tài)擴容
邏輯卷管理器是Linux系統(tǒng)用于對硬盤分區(qū)進行管理的一種機制,理論性較強帜篇,其創(chuàng)建初衷是為了解決硬盤設(shè)備在創(chuàng)建分區(qū)后不易修改分區(qū)大小的缺陷糙捺。盡管對傳統(tǒng)的硬盤分區(qū)進行強制擴容或縮容從理論上來講是可行的,但是卻可能造成數(shù)據(jù)的丟失笙隙。而LVM技術(shù)是在硬盤分區(qū)和文件系統(tǒng)之間添加了一個邏輯層洪灯,它提供了一個抽象的卷組,可以把多塊硬盤進行卷組合并竟痰。這樣一來签钩,用戶不必關(guān)心物理硬盤設(shè)備的底層架構(gòu)和布局,就可以實現(xiàn)對硬盤分區(qū)的動態(tài)調(diào)整坏快。LVM的技術(shù)架構(gòu)如圖所示铅檩。

LVM常用的術(shù)語

物理存儲介質(zhì)(The physical media):LVM存儲介質(zhì)可以是磁盤分區(qū),整個磁盤莽鸿,RAID陣列或SAN磁盤昧旨,設(shè)備必須初始化為LVM物理卷拾给,才能與LVM結(jié)合使用
物理卷PV(physical volume) :物理卷就是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(zhì)(如分區(qū)兔沃、磁盤等)比較蒋得,卻包含有與LVM相關(guān)的管理參數(shù),創(chuàng)建物理卷它可以用硬盤分區(qū),也可以用硬盤本身乒疏;
卷組VG(Volume Group) :一個LVM卷組由一個或多個物理卷組成??
邏輯卷LV(logical volume) :LV建立在VG之上额衙,可以在LV之上建立文件系統(tǒng)
PE(physical extents) :PV物理卷中可以分配的最小存儲單元,PE的大小是可以指定的怕吴,默認為4MB
LE(logical extent) : LV邏輯卷中可以分配的最小存儲單元窍侧,在同一個卷組中,LE的大小和PE是相同的转绷,并且一一對應(yīng)

LVM部署邏輯卷

常用的LVM部署命令伟件;LVM: logical volumes manager
| 功能/命令 | 物理卷管理 | 卷組管理 | 邏輯卷管理 |
| 掃描 | pvscan |vgscan | lvscan |
| 建立 | pvcreate | vgcreate | lvcreate |
| 顯示 | pvdisplay | vgdisplay | lvdisplay |
| 刪除 | pvremove | vgremove | lvremove |
| 擴展 | | vgextend | lvextend |
| 縮小 | | vgreduce | lvreduce |

Linux擴容邏輯卷ext4格式

物理卷–》卷組–》邏輯卷

第一步;添加磁盤
l略

第二步:查看磁盤
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc

第三步:創(chuàng)建物理卷
[root@ken ~]# pvcreate /dev/sd{b,c}
Physical volume “/dev/sdb” successfully created.
Physical volume “/dev/sdc” successfully created.

第四步:創(chuàng)建卷組
[root@ken ~]# vgcreate vg_ken /dev/sd{b,c} #卷組名為vg_ken暇咆,物理卷/dev/sd{b,c}
Volume group “vg_ken” successfully created

第五步:邏輯卷創(chuàng)建
方式一:使用L進行容量指定
[root@ken ~]# lvcreate -L 500M -n lv_ken1 vg_ken
Logical volume “l(fā)v_ken1” created.
方式二:使用 l 指定PE數(shù)量
[root@ken ~]# lvcreate -l 125 -n lv_ken2 vg_ken
Logical volume “l(fā)v_ken2” created.

第六步:格式化邏輯卷
[root@ken ~]# mkfs.xfs /dev/vg_ken/lv_ken1
meta-data=/dev/vg_ken/lv_ken1 isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@ken ~]# mkfs.xfs /dev/vg_ken/lv_ken2
meta-data=/dev/vg_ken/lv_ken2 isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

第七步:掛載使用
[root@ken ~]# mkdir /ken1
[root@ken ~]# mkdir /ken2
[root@ken ~]# mount /dev/vg_ken/lv_ken1 /ken1
[root@ken ~]# mount /dev/vg_ken/lv_ken2 /ken2

第八步:查看掛載信息
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg_ken-lv_ken1 497M 26M 472M 6% /ken1
/dev/mapper/vg_ken-lv_ken2 497M 26M 472M 6% /ken2

第九步:開機自啟
方法一: 寫入/etc/fstab
[root@ken ~]# echo “/dev/mapper/vg_ken-lv_ken1 /ken1 xfs defaults 0 0” >> /etc/fstab
方法二:寫入rc.local
echo “mount /dev/vg_ken/lv_ken1 /ken1” >> /etc/rc.local

Linux擴容邏輯卷xfs格式

第一步:直接擴容
[root@ken ~]# lvextend -L 800M /dev/vg_ken/lv_ken1
Size of logical volume vg_ken/lv_ken1 changed from 500.00 MiB (125 extents) to 800.00 MiB (200 extents).
Logical volume vg_ken/lv_ken1 successfully resized.
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg_ken-lv_ken1 497M 26M 472M 6% /ken1
/dev/mapper/vg_ken-lv_ken2 497M 26M 472M 6% /ken2

第二步:xfs_growfs使配置生效
[root@ken ~]# xfs_growfs /dev/vg_ken/lv_ken1
meta-data=/dev/mapper/vg_ken-lv_ken1 isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 128000 to 204800
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg_ken-lv_ken1 797M 26M 772M 4% /ken1
/dev/mapper/vg_ken-lv_ken2 497M 26M 472M 6% /ken2
[root@ken ~]#
注意:

  1. xfs格式的磁盤不需要卸載即可直接在線進行擴容
  2. extX格式需要先卸載再進行擴容
  3. XFS格式的磁盤類型只支持擴容不支持縮容

Linux縮小邏輯卷

LVM擴容–EXT4格式

第一步:創(chuàng)建一個ext4格式的邏輯卷
[root@ken ~]# lvcreate -L 500M -n lv_ext4 vg_ken
Logical volume “l(fā)v_ext4” created.

第二步:格式化為ext4格式
[root@ken ~]# mkfs.ext4 /dev/vg_ken/lv_ext4

第三步:掛載
[root@ken ~]# mkdir /ext4
[root@ken ~]# mount /dev/vg_ken/lv_ext4 /ext4
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg_ken-lv_ken1 797M 26M 772M 4% /ken1
/dev/mapper/vg_ken-lv_ken2 497M 26M 472M 6% /ken2
/dev/mapper/vg_ken-lv_ext4 477M 2.3M 445M 1% /ext4

第四步:開始擴容
卸載
[root@ken ~]# umount /ext4
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg_ken-lv_ken1 797M 26M 772M 4% /ken1
/dev/mapper/vg_ken-lv_ken2 497M 26M 472M 6% /ken2

第五步:擴容lvextend
[root@ken ~]# lvextend -L 800M /dev/vg_ken/lv_ext4
Size of logical volume vg_ken/lv_ext4 changed from 500.00 MiB (125 extents) to 800.00 MiB (200 extents).
Logical volume vg_ken/lv_ext4 successfully resized.

第六步:磁盤檢測
[root@ken ~]# e2fsck -f /dev/vg_ken/lv_ext4
e2fsck 1.42.9 (28-Dec-2013)
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/vg_ken/lv_ext4: 11/128016 files (0.0% non-contiguous), 26684/512000 blocks

第七步:擴容resize2fs
[root@ken ~]# resize2fs //dev/vg_ken/lv_ext4
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on //dev/vg_ken/lv_ext4 to 819200 (1k) blocks.
The filesystem on //dev/vg_ken/lv_ext4 is now 819200 blocks long.

第八步:掛載使用
[root@ken ~]# mount //dev/vg_ken/lv_ext4 /ext4
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg_ken-lv_ken1 797M 26M 772M 4% /ken1
/dev/mapper/vg_ken-lv_ken2 497M 26M 472M 6% /ken2
/dev/mapper/vg_ken-lv_ext4 767M 2.5M 721M 1% /ext4

LVM縮容–EXT4格式

第一步:卸載
[root@ken ~]# umount /ext4
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg_ken-lv_ken1 797M 26M 772M 4% /ken1
/dev/mapper/vg_ken-lv_ken2 497M 26M 472M 6% /ken2

第二步:檢測
[root@ken ~]# e2fsck -f /dev/vg_ken/lv_ext4
e2fsck 1.42.9 (28-Dec-2013)
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/vg_ken/lv_ext4: 11/203200 files (0.0% non-contiguous), 36417/819200 blocks

第三步:縮容
[root@ken ~]# resize2fs /dev/vg_ken/lv_ext4 500M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg_ken/lv_ext4 to 512000 (1k) blocks.
The filesystem on /dev/vg_ken/lv_ext4 is now 512000 blocks long.

第四步:執(zhí)行l(wèi)vreduce
[root@ken ~]# lvreduce -L 500M /dev/vg_ken/lv_ext4
WARNING: Reducing active logical volume to 500.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_ken/lv_ext4? [y/n]: y
Size of logical volume vg_ken/lv_ext4 changed from 800.00 MiB (200 extents) to 500.00 MiB (125 extents).
Logical volume vg_ken/lv_ext4 successfully resized.

第五步:掛載使用
[root@ken ~]# mount //dev/vg_ken/lv_ext4 /ext4
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/vg_ken-lv_ken1 797M 26M 772M 4% /ken1
/dev/mapper/vg_ken-lv_ken2 497M 26M 472M 6% /ken2
/dev/mapper/vg_ken-lv_ext4 477M 2.3M 445M 1% /ext4

Linux刪除邏輯卷

邏輯卷 –》卷組–》物理卷

第一步:卸載正在使用的邏輯卷
[root@ken ~]# umount /ken1
[root@ken ~]# umount /ken2
[root@ken ~]# umount /ext4
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.4G 16G 8% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 488M 0 488M 0% /dev/shm
tmpfs 488M 7.7M 480M 2% /run
tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda1 1014M 130M 885M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0

第二步:刪除邏輯卷
[root@ken ~]# lvremove /dev/vg_ken/lv_
lv_ext4 lv_ken1 lv_ken2
[root@ken ~]# lvremove /dev/vg_ken/lv_*
Do you really want to remove active logical volume vg_ken/lv_ken1? [y/n]: y
Logical volume “l(fā)v_ken1” successfully removed
Do you really want to remove active logical volume vg_ken/lv_ken2? [y/n]: y
Logical volume “l(fā)v_ken2” successfully removed
Do you really want to remove active logical volume vg_ken/lv_ext4? [y/n]: y
Logical volume “l(fā)v_ext4” successfully removed

第三步:刪除卷組
[root@ken ~]# vgremove vg_ken
Volume group “vg_ken” successfully removed

第四步:刪除物理卷
[root@ken ~]# pvremove /dev/sd{b,c}
Labels on physical volume “/dev/sdb” successfully wiped.
Labels on physical volume “/dev/sdc” successfully wiped.

第五步:查看
[root@ken ~]# pvdisplay
— Physical volume —
PV Name /dev/sda2 #只有系統(tǒng)自帶的了
VG Name centos
PV Size <19.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4863
Free PE 0
Allocated PE 4863
PV UUID MDIeKf-Tbul-ST5P-ua57-lCVG-bPWM-o32gdQ

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锋爪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子爸业,更是在濱河造成了極大的恐慌其骄,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扯旷,死亡現(xiàn)場離奇詭異拯爽,居然都是意外死亡,警方通過查閱死者的電腦和手機钧忽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門毯炮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人耸黑,你說我怎么就攤上這事桃煎。” “怎么了大刊?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵为迈,是天一觀的道長。 經(jīng)常有香客問我缺菌,道長葫辐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任伴郁,我火速辦了婚禮耿战,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焊傅。我一直安慰自己剂陡,他們只是感情好狈涮,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸭栖,像睡著了一般薯嗤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纤泵,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音镜粤,去河邊找鬼捏题。 笑死,一個胖子當著我的面吹牛肉渴,可吹牛的內(nèi)容都是我干的公荧。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼同规,長吁一口氣:“原來是場噩夢啊……” “哼循狰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起券勺,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤绪钥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后关炼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體程腹,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年儒拂,在試婚紗的時候發(fā)現(xiàn)自己被綠了寸潦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡社痛,死狀恐怖见转,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒜哀,我是刑警寧澤斩箫,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站凡怎,受9級特大地震影響校焦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜统倒,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一寨典、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧房匆,春花似錦耸成、人聲如沸报亩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弦追。三九已至,卻和暖如春花竞,著一層夾襖步出監(jiān)牢的瞬間劲件,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工约急, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留零远,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓厌蔽,卻偏偏與公主長得像牵辣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奴饮,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

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