Linux系統(tǒng)之lvcreate命令使用解讀
lvcreate命令詳解
一、命令概述
lvcreate 是 LVM(邏輯卷管理)工具集中用于創(chuàng)建邏輯卷(LV) 的核心命令,支持創(chuàng)建多種類型的邏輯卷,包括線性卷、條帶化卷、鏡像卷、RAID卷、快照卷、瘦池(thin pool)及緩存池(cache pool)等。
其核心功能是從卷組(VG)中分配物理擴(kuò)展(PE),為新邏輯卷分配空間,并根據(jù)指定類型配置存儲策略(如條帶化提升性能、RAID提供冗余),適用于靈活管理存儲資源、滿足不同性能和可靠性需求的場景。
二、語法格式
lvcreate 的語法根據(jù)邏輯卷類型不同而有所變化,基本結(jié)構(gòu)如下:
lvcreate [選項(xiàng)]... 卷組名[\/邏輯卷名]
參數(shù)說明:
選項(xiàng):控制邏輯卷的類型、大小、分配策略、激活狀態(tài)等(詳細(xì)選項(xiàng)見下文)。卷組名:目標(biāo)卷組(VG)的名稱,新邏輯卷將在該卷組中創(chuàng)建。邏輯卷名:可選,通過-n|--name指定,未指定時(shí)默認(rèn)生成以lvol為前綴的名稱(如lvol0)。
三、核心功能
lvcreate 支持創(chuàng)建多種類型的邏輯卷,適配不同存儲需求,核心類型及特點(diǎn)如下:
| 邏輯卷類型 | 特點(diǎn)與用途 |
|---|---|
| 線性卷(linear) | 最基礎(chǔ)的LV類型,空間連續(xù)分配,適用于普通存儲場景。 |
| 條帶化卷(striped) | 數(shù)據(jù)分散存儲在多個(gè)物理卷(PV)上,提升讀寫性能,適合大文件頻繁訪問場景。 |
| RAID卷(raid) | 支持RAID1/4/5/6/10等級別,提供數(shù)據(jù)冗余或性能優(yōu)化(如RAID1鏡像、RAID5奇偶校驗(yàn))。 |
| 鏡像卷(mirror) | 數(shù)據(jù)同步到多個(gè)鏡像副本,提供高可用性(傳統(tǒng)實(shí)現(xiàn),推薦優(yōu)先使用RAID1)。 |
| 快照卷(snapshot) | 基于源LV創(chuàng)建只讀/可寫快照,用于備份或測試(分為COW快照和瘦快照)。 |
| 瘦池(thin-pool) | 支持瘦 provisioning(按需分配空間),提高存儲利用率,適合動態(tài)擴(kuò)展場景。 |
| 緩存池(cache-pool) | 結(jié)合高速存儲(如SSD)加速慢速存儲(如HDD)的訪問,提升讀寫性能。 |
四、選項(xiàng)詳解
1. 基本配置選項(xiàng)(必選)
| 選項(xiàng) | 長選項(xiàng) | 說明 |
|---|---|---|
| -L 大小 | --size 大小 | 指定邏輯卷的實(shí)際大?。ㄈ?10G、500M),單位支持 k(KiB)、M(MiB)、G(GiB)等(基礎(chǔ)2進(jìn)制單位)。 |
| -l 數(shù)量[%] | --extents 數(shù)量[%] | 以邏輯擴(kuò)展(LE)數(shù)指定大小,可搭配百分比: - 100%VG:使用卷組全部空間; - 50%FREE:使用卷組空閑空間的50%; - 20%ORIGIN(快照用):使用源LV大小的20%作為COW空間。 |
| -n 名稱 | --name 名稱 | 指定新邏輯卷的名稱(如 -n data_lv)。 |
2. 類型與功能選項(xiàng)(核心)
| 選項(xiàng) | 長選項(xiàng) | 說明 |
|---|---|---|
| --type 類型 | - | 指定邏輯卷類型: - linear:線性卷(默認(rèn)); - striped:條帶化卷; - raid1/5/6/10:RAID卷; - mirror:鏡像卷; - snapshot:快照卷; - thin:瘦卷; - thin-pool:瘦池; - cache/cache-pool:緩存卷/緩存池。 |
| -i 數(shù)量 | --stripes 數(shù)量 | 條帶化卷或RAID卷的條帶數(shù)(即分散的PV數(shù)量),如 -i 3 表示數(shù)據(jù)分散到3個(gè)PV。 |
| -I 大小 | --stripesize 大小 | 條帶化卷或RAID卷的條帶大?。ㄈ?64k),即每個(gè)PV上連續(xù)寫入的數(shù)據(jù)量。 |
| -m 數(shù)量 | --mirrors 數(shù)量 | 鏡像卷或RAID1的鏡像副本數(shù)(不含原始數(shù)據(jù)),如 -m 1 表示1個(gè)副本(共2份數(shù)據(jù))。 |
| -s | --snapshot | 創(chuàng)建快照卷,需指定源LV(如 lvcreate -s vg00/origin_lv)。 |
| -V 大小 | --virtualsize 大小 | 瘦卷(thin LV)的虛擬大?。▽?shí)際空間按需分配),如 -V 100G 表示虛擬100GiB。 |
| --thinpool 瘦池名 | - | 為瘦卷指定關(guān)聯(lián)的瘦池(如 --thinpool tp01)。 |
3. 激活與分配選項(xiàng)
| 選項(xiàng) | 長選項(xiàng) | 說明 |
|---|---|---|
| -a y|n|ay | --activate y|n|ay | 控制新LV的激活狀態(tài): - y:創(chuàng)建后立即激活(默認(rèn)); - n:不激活; - ay:自動激活(僅匹配 lvm.conf 配置的LV)。 |
| --alloc 策略 | - | 物理擴(kuò)展(PE)的分配策略: - normal:默認(rèn)策略(避免條帶在同一PV); - contiguous:連續(xù)分配; - anywhere:允許任意分配(可能降低性能)。 |
4. 高級選項(xiàng)(特定場景)
| 選項(xiàng) | 長選項(xiàng) | 說明 |
|---|---|---|
| -c 大小 | --chunksize 大小 | 快照、瘦池或緩存池的塊大?。ㄈ?64k),影響空間分配粒度。 |
| --mirrorlog core|disk | - | 鏡像卷的日志類型: - disk:持久化日志(需額外PV); - core:內(nèi)存日志(重啟后需重新同步)。 |
| --nosync | - | 創(chuàng)建RAID或鏡像卷時(shí)跳過初始同步(加快創(chuàng)建速度,適用于空卷)。 |
| -Z y|n | --zero y|n | 是否清零LV的前4KiB空間(默認(rèn) y,避免掛載時(shí)系統(tǒng)掛起)。 |
五、使用示例
1. 創(chuàng)建邏輯卷(LV)
1.1 創(chuàng)建線性邏輯卷
lvcreate -L <Size> -n <LVName> <VG>
功能:創(chuàng)建線性邏輯卷(數(shù)據(jù)按順序存儲)。
參數(shù):
-L|--size <Size>:指定邏輯卷的大?。▎挝唬簁/m/g/t)。-n|--name <LVName>:指定邏輯卷的名稱。<VG>:指定卷組名稱。
示例:
lvcreate -L 10G -n my_lv vg0
1.2 創(chuàng)建條帶化(Striped)邏輯卷
lvcreate -i <Stripes> -I <StripeSize> -L <Size> -n <LVName> <VG>
功能:創(chuàng)建條帶化邏輯卷(數(shù)據(jù)跨多個(gè)物理卷分布)。
參數(shù):
-i|--stripes <Stripes>:指定條帶數(shù)量(使用的物理卷數(shù))。-I|--stripesize <StripeSize>:指定條帶大?。▎挝唬簁)。
示例:
lvcreate -i 3 -I 64k -L 50G -n striped_lv vg0
1.3 創(chuàng)建鏡像(Mirror)或 RAID1 邏輯卷
lvcreate --type mirror -m <Mirrors> -L <Size> -n <LVName> <VG> # 或 lvcreate --type raid1 -m <Mirrors> -L <Size> -n <LVName> <VG>
功能:創(chuàng)建鏡像(mirror)或 RAID1 邏輯卷。
參數(shù):
-m|--mirrors <Mirrors>:指定鏡像副本數(shù)(如1表示兩副本)。--type mirror/raid1:指定邏輯卷類型。
示例:
lvcreate --type mirror -m 1 -L 20G -n mirror_lv vg0
1.4 創(chuàng)建 RAID 邏輯卷(RAID5/RAID6/RAID10)
lvcreate --type raid5 -i <Stripes> -I <StripeSize> -L <Size> -n <LVName> <VG> lvcreate --type raid6 -i <Stripes> -I <StripeSize> -L <Size> -n <LVName> <VG> lvcreate --type raid10 -i <Stripes> -m <Mirrors> -L <Size> -n <LVName> <VG>
功能:創(chuàng)建 RAID5、RAID6 或 RAID10 邏輯卷。
參數(shù):
-i|--stripes <Stripes>:指定數(shù)據(jù)條帶數(shù)(RAID5/RAID6 需滿足設(shè)備數(shù)要求)。-m|--mirrors <Mirrors>:指定鏡像副本數(shù)(RAID10 使用)。
示例:
lvcreate --type raid5 -i 3 -I 64k -L 100G -n raid5_lv vg0
1.5 創(chuàng)建快照(Snapshot)
1.5.1 創(chuàng)建 COW 快照
lvcreate --snapshot -s -L <Size> -n <SnapName> <OriginLV>
功能:創(chuàng)建基于原卷的 Copy-on-Write 快照。
參數(shù):
-s|--snapshot:指定快照類型。-L|--size <Size>:快照預(yù)留空間大小。<OriginLV>:原邏輯卷路徑(如vg0/origin_lv)。
示例:
lvcreate --snapshot -s -L 10G -n snap_lv vg0/origin_lv
1.5.2 創(chuàng)建稀疏快照(Sparse Snapshot)
lvcreate --snapshot -s -V <VirtualSize> -L <Size> -n <SnapName> <VG>
功能:創(chuàng)建稀疏快照(虛擬空間與實(shí)際空間分離)。
參數(shù):
-V|--virtualsize <VirtualSize>:虛擬空間大小。
示例:
lvcreate --snapshot -s -V 1T -L 100M -n sparse_snap vg0
1.6 創(chuàng)建薄配置(Thin Provisioning)
1.6.1 創(chuàng)建薄池(Thin Pool)
lvcreate --type thin-pool -L <PoolSize> -n <PoolName> <VG>
功能:創(chuàng)建薄池(用于管理薄邏輯卷)。
參數(shù):
--type thin-pool:指定薄池類型。
示例:
lvcreate --type thin-pool -L 100G -n thin_pool vg0
1.6.2 創(chuàng)建薄邏輯卷
lvcreate --type thin -V <VirtualSize> --thinpool <PoolName> -n <ThinLVName> <VG>
功能:基于薄池創(chuàng)建薄邏輯卷。
參數(shù):
--type thin:指定薄邏輯卷類型。--thinpool <PoolName>:關(guān)聯(lián)的薄池名稱。
示例:
lvcreate --type thin -V 50G --thinpool thin_pool -n thin_lv vg0
1.7 創(chuàng)建緩存(Cache)邏輯卷
1.7.1 創(chuàng)建緩存池(Cache Pool)
lvcreate --type cache-pool -L <CacheSize> -n <CachePoolName> <VG>
功能:創(chuàng)建緩存池(用于加速邏輯卷性能)。
參數(shù):
--type cache-pool:指定緩存池類型。
示例:
lvcreate --type cache-pool -L 10G -n cache_pool vg0
1.7.2 創(chuàng)建緩存邏輯卷
lvcreate --type cache -L <Size> --cachepool <CachePoolName> -n <CacheLVName> <VG>
功能:將緩存池與標(biāo)準(zhǔn)邏輯卷結(jié)合,創(chuàng)建緩存邏輯卷。
參數(shù):
--type cache:指定緩存邏輯卷類型。--cachepool <CachePoolName>:關(guān)聯(lián)的緩存池名稱。
示例:
lvcreate --type cache -L 50G --cachepool cache_pool -n cache_lv vg0
2. 高級選項(xiàng)
2.1 指定分配策略
lvcreate --alloc <Policy> <其他參數(shù)>
功能:控制物理卷分配策略。
參數(shù):
<Policy>:可選值為normal(默認(rèn))、contiguous(連續(xù)分配)、anywhere(任意分配)等。
示例:
lvcreate --alloc anywhere -L 10G -n any_lv vg0
2.2 設(shè)置讀取超前(Read Ahead)
lvcreate -r <ReadAheadSize> <其他參數(shù)>
功能:設(shè)置邏輯卷的讀取超前大小。
參數(shù):
-r|--readahead <ReadAheadSize>:指定讀取超前大?。▎挝唬荷葏^(qū))。
示例:
lvcreate -r 128 -L 10G -n readahead_lv vg0
2.3 設(shè)置 RAID 同步區(qū)域大小
lvcreate -R <RegionSize> <其他參數(shù)>
功能:調(diào)整 RAID 同步區(qū)域的大小。
參數(shù):
-R|--regionsize <RegionSize>:指定同步區(qū)域大?。▎挝唬簃)。
示例:
lvcreate -R 512k --type raid1 -L 20G -n raid1_lv vg0
3. 常見操作示例
3.1 創(chuàng)建 RAID5 邏輯卷
lvcreate --type raid5 -i 3 -I 64k -L 100G -n raid5_lv vg0
- 說明:創(chuàng)建 3 條帶、64k 條帶大小的 RAID5 卷。
3.2 創(chuàng)建薄快照
lvcreate --type thin -V 50G --thinpool thin_pool -n thin_snap vg0
- 說明:基于薄池
thin_pool創(chuàng)建 50G 虛擬空間的薄快照。
3.3 創(chuàng)建緩存邏輯卷
lvcreate --type cache -L 50G --cachepool cache_pool -n cache_lv vg0
- 說明:將緩存池
cache_pool與 50G 邏輯卷結(jié)合,創(chuàng)建緩存卷。
六、注意事項(xiàng)
- 空間分配:創(chuàng)建LV前需確保卷組(VG)有足夠空閑空間,可通過
vgs命令檢查。 - RAID要求:不同RAID級別需特定數(shù)量的PV(如RAID5需至少3個(gè)PV,含1個(gè)奇偶校驗(yàn))。
- 快照管理:COW快照的大小需根據(jù)源LV的預(yù)期寫入量設(shè)置,空間不足時(shí)會失效(可通過
lvextend擴(kuò)展)。 - 瘦池特性:瘦卷的虛擬大小可遠(yuǎn)大于實(shí)際分配空間,但需監(jiān)控瘦池使用率,避免滿空間導(dǎo)致I/O錯(cuò)誤。
- 性能權(quán)衡:條帶化提升并行讀寫性能,但增加PV負(fù)載;RAID提供冗余但消耗額外空間。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux下用cron定時(shí)執(zhí)行任務(wù)的方法
呵呵,比較有用,網(wǎng)上摘抄的。留著備用吧。2008-06-06
關(guān)于opensips用戶認(rèn)證配置文件 opensips.cfg 使用介紹
本篇文章小編為大家介紹,關(guān)于opensips用戶認(rèn)證配置文件opensips.cfg使用介紹。需要的朋友參考下2013-04-04
linux實(shí)現(xiàn)自動部署tomcat腳本
這篇文章主要為大家詳細(xì)介紹了linux實(shí)現(xiàn)自動部署tomcat的腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Linux中特殊權(quán)限SUID、SGID與SBIT的深入講解
linux對文件的權(quán)限管理簡直是讓人嘆為觀止,所以這篇文章主要給大家介紹了關(guān)于Linux中特殊權(quán)限SUID、SGID與SBIT的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Linux中mkdir函數(shù)與Windows中_mkdir函數(shù)的區(qū)別
這篇文章主要介紹了Linux中mkdir函數(shù)與Windows中_mkdir函數(shù)的區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-01-01

