磁盤介紹
接口
從整體的角度上,硬碟接口分為IDE、SATA、SCSI和SAS四種,IDE接口硬碟多用于家用産品中,也部分應用于伺服器,SCSI接口的硬碟則主要應用于伺服器市場,而SAS隻在高端伺服器上,價格昂貴。
硬碟種類
SATA硬碟:用SATA接口的硬碟又叫序列槽硬碟,是以後PC機的主流發展方向,因為其有較強的糾錯能力,錯誤一經發現能自動糾正,這樣就大大的提高了資料傳輸的安全性。新的SATA 使用了差動信号系統"differential-signal-amplified-system"。這種系統能有效的将噪聲從正常訊号中濾除,良好的噪聲濾除能力使得SATA隻要使用低電壓操作即可,和 Parallel ATA 高達5V的傳輸電壓相比,SATA 隻要0.5V(500mv) 的峰對峰值電壓即可操作于更高的速度之上。"比較正确的說法是:峰對峰值\'差模電壓\'"。一般轉速可達7200轉/分。
SCSI硬碟:SCSI硬碟即采用SCSI接口的硬碟。 優點:SCSI接口具有應用範圍廣、多任務、帶寬大、CPU占用率低,以及熱插拔等。它由于性能好、穩定性高,是以在伺服器上得到廣泛應用。缺點:由于SCSI硬碟價格非常昂貴,是以一般的PC是不會使用SCSI硬碟。 一般轉速可達10000轉/分。
SAS硬碟:SAS(Serial Attached SCSI)即串行連接配接SCSI,是新一代的SCSI技術,和現在流行的Serial ATA(SATA)硬碟相同,都是采用串行技術以獲得更高的傳輸速度,并通過縮短連結線改善内部空間等。改善存儲系統的效能、可用性和擴充性。 一般轉速可達15000轉/分,甚至更高。
分區符認識
MBR概述:全稱為Master Boot Record,即硬碟的主引導記錄。
硬碟的0柱面、0磁頭、1扇區稱為主引導扇區(也叫主引導記錄MBR)。它由三個部分組成,主引導程式、硬碟分區表DPT(Disk Partition table)和分區有效标志(55AA)。在總共512位元組的主引導扇區裡主引導程式(boot lo ader)占446個位元組,第二部分是Partition table區(分區表),即DPT,占64個位元組,硬碟中分區有多少以及每一分區的大小都記在其中。第三部分是魔數,占2個位元組,固定為55AA。
分區編号:主分區1-4 ,邏輯分區5……
LINUX規定:邏輯分區必須建立在擴充分區之上,而不是建立在主分區上
分區作用:
主分區:主要是用來啟動作業系統的,它主要放的是作業系統的啟動或引導程式,/boot分區最好放在主分區上
擴充分區不能使用的,它隻是做為邏輯分區的容器存在的,先建立一個擴充分區,在拓展分區之上建立邏輯分區;我們真正存放資料的是主分區和邏輯分區,大量資料都放在邏輯分區中。
注意:使用分區工具fdisk對磁盤進行操作,分區,格式化(重點)
注意:
主分區+擴充分區 最多隻能有4個
擴充分區可以是0個,最多是1個
擴充分區不能直接使用,擴充分區必須首先建立成邏輯分區才能使用
邏輯分區可以是0個 1個 多個
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde
命名方式: /dev/sd[a-z]n
其中:a-z 表示裝置的序号,如sda表示第一塊scsi硬碟,sdb就是第二塊......
n 表示每塊磁盤上劃分的磁盤分區編号
檔案系統與資料資料
;
使用者在硬體儲存設備中執行的檔案建立、寫入、讀取、修改、轉存與控制等操作都是依靠檔案系統來完成的。檔案系統的作用是合理規劃硬碟,以保證使用者正常的使用需求。Linux系統支援數十種的檔案系統,而最常見的檔案系統如下所示。
Ext3:是一款日志檔案系統,能夠在系統異常當機時避免檔案系統資料丢失,并能自動修複資料的不一緻與錯誤。然而,當硬碟容量較大時,所需的修複時間也會很長,而且也不能百分之百地保證資料不會丢失。它會把整個磁盤的每個寫入動作的細節都預先記錄下來,以便在發生異常當機後能回溯追蹤到被中斷的部分,然後嘗試進行修複。
Ext4:Ext3的改進版本,作為RHEL 6系統中的預設檔案管理系統,它支援的存儲容量高達1EB(1EB=1,073,741,824GB),且能夠有無限多的子目錄。另外,Ext4檔案系統能夠批量配置設定block塊,進而極大地提高了讀寫效率。
XFS:是一種高性能的日志檔案系統,而且是RHEL 7中預設的檔案管理系統,它的優勢在發生意外當機後尤其明顯,即可以快速地恢複可能被破壞的檔案,而且強大的日志功能隻用花費極低的計算和存儲性能。并且它最大可支援的存儲容量為18EB,這幾乎滿足了所有需求。
fdisk管理分區
參數 作用
m 檢視全部可用的參數
n添加新的分區
d删除某個分區資訊
l列出所有可用的分區類型
t 改變某個分區的類型
p檢視分區表資訊
w儲存并退出
q不儲存直接退出
fdisk:磁盤分區,是Linux發行版本中最常用的分區工具
用法:fdisk [選項] device
常用的選項: -l 檢視硬碟分區表
案例:在sdb盤上建一個分區,大小為100M
在虛拟機上添加一塊硬碟
第一步:檢視磁盤
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
第二步:對sdb劃分一個100M的空間
[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 0x52997d99.
Command (m for help): n #建立一個新的分區
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): #預設主分區,直接回車
Using default response p
Partition number (1-4, default 1): #預設為第一個分區編号,直接回車
First sector (2048-41943039, default 2048): #預設第一個扇區開始位置,直接回車
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +100M #選擇大小,前面要使用加号
Partition 1 of type Linux and of size 100 MiB 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: 0x52997d99
Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 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 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
第四步:挂載使用
[root@ken ~]# mkdir /part
[root@ken ~]# mount /dev/sdb1 /part
[root@ken ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.2G 16G 7% /
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 93M 1.6M 85M 2% /part
第五步:寫入到配置檔案中,開機自啟
[root@ken ~]# echo "/dev/sdb1 /part ext4 defaults 0 0" >> /etc/fstab
/dev/sdb1/sdb1xfsdefaults00
要挂載的分區裝置挂載點檔案系統類型挂載選項是否備份是否檢測
添加交換分區
SWAP(交換)分區是一種通過在硬碟中預先劃分一定的空間,然後将把記憶體中暫時不常用的資料臨時存放到硬碟中,以便騰出實體記憶體空間讓更活躍的程式服務來使用的技術,其設計目的是為了解決真實實體記憶體不足的問題。但由于交換分區畢竟是通過硬碟裝置讀寫資料的,速度肯定要比實體記憶體慢,是以隻有當真實的實體記憶體耗盡後才會調用交換分區的資源。
交換分區的建立過程與前文講到的挂載并使用儲存設備的過程非常相似。在對/dev/sdb儲存設備進行分區操作前,有必要先說一下交換分區的劃分建議:在生産環境中,交換分區的大小一般為真實實體記憶體的1.5~2倍,為了讓大家更明顯地感受交換分區空間的變化,這裡取出一個大小為5GB的主分區作為交換分區資源。在分區建立完畢後儲存并退出即可:
第一步:劃分2G大小的磁盤
╭─root@zxw ~
╰─➤ fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。
更改将停留在記憶體中,直到您決定将更改寫入磁盤。
使用寫入指令前請三思。
指令(輸入 m 擷取幫助):n 建立
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): p 檢視
分區号 (3,4,預設 3): 預設 回車即可
起始 扇區 (20973568-41943039,預設為 20973568): 預設回車即可
将使用預設值 20973568
Last 扇區, +扇區 or +size{K,M,G} (20973568-41943039,預設為 41943039):+2G
分區 3 已設定為 Linux 類型,大小設為 2 GiB
指令(輸入 m 擷取幫助):p 檢視分區
磁盤 /dev/sdb:21.5 GB, 21474836480 位元組,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/實體):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁盤标簽類型:dos
磁盤辨別符:0x915dc123
裝置 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
指令(輸入 m 擷取幫助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 裝置或資源忙.
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)
正在同步磁盤。
第二步:識别新的分區
╭─root@zxw ~
╰─➤ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb5
╭─root@zxw ~
╰─➤ partprobe
Warning: 無法以讀寫方式打開 /dev/sr0 (隻讀檔案系統)。/dev/sr0 已按照隻讀方式打開。
╭─root@zxw ~
╰─➤ ls /dev/sd* 再次列出分區 1 ↵
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5
╭─root@zxw ~
第三步:格式化為swap類型
─root@zxw ~
╰─➤ mkswap /dev/sdb3
正在設定交換空間版本 1,大小 = 2097148 KiB
無标簽,UUID=47ed5ae2-ee9b-4b4b-83b3-563c00fe51ae
第四步:啟動swap
╭─root@zxw ~
╰─➤ free -h
total used free shared buff/cache available
Mem: 1.8G 448M 927M 10M 447M 1.2G
Swap: 2.0G 0B 2.0G
╭─root@zxw ~
╰─➤ swapon /dev/sdb3
╭─root@zxw ~
╰─➤ free -h
total used free shared buff/cache available
Mem: 1.8G 450M 925M 10M 447M 1.2G
Swap: 4.0G 0B 4.0G
第四步:寫入到配置檔案中
─root@zxw ~
╰─➤ echo "swapon /dev/sdb3" >> /etc/rc.local
╭─root@zxw ~
╰─➤ vim /etc/rc.local
第一步:建立目錄
[root@zxw ~]# mkdir /swap
第二步:建立檔案
[root@zxw ~]# 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@zxw ~]# mkswap /swap/swap
Setting up swapspace version 1, size = 4124668 KiB
no label, UUID=211cb23a-49b5-46fc-b568-f167d4b6d06a
第四步:寫入檔案
[root@zxw ~]# echo “/swap/swap swap swap defaults 0 0” >> /etc/fstab
[root@zxw ~]# mount -a
[root@zxw ~]# 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
第五步:修改權限
[root@ken ~]# chmod 0600 /swap/swap
第五步:停止swap
使用swapoff可以停止swap
[root@zxw ~]# free -h
total used free shared buff/cache available
Mem: 974M 93M 751M 7.6M 129M 731M
Swap: 7.0G 0B 7.0G
[root@zxw ~]# swapoff
Usage:
swapoff [options] [<spec>]
Options:
-a, --all disable all swaps from /proc/swaps
-v, --verbose verbose mode
-h, --help display this help and exit
-V, --version output version information and exit
The <spec> parameter:
-L <label> LABEL of device to be used
-U <uuid> UUID of device to be used
LABEL=<label> LABEL of device to be used
UUID=<uuid> UUID of device to be used
<device> name of device to be used
<file> name of file to be used
For more details see swapoff(8).
[root@zxw~]# swapoff -a
[root@zxw ~]# free -h
total used free shared buff/cache available
Mem: 974M 88M 758M 7.6M 127M 737M
Swap: 0B 0B 0B
LVM邏輯卷管理器
實戰場景:對于生産環境下的伺服器來說,如果存儲資料的分區磁盤空間不夠了怎麼辦?
答:隻能換一個更大的磁盤。如果用了一段時間後,空間又不夠了,怎麼辦?再加一塊更大的?換磁盤的過程中,還需要把資料從一個硬碟複制到另一個硬碟,過程太慢了。
解決方案:使用LVM線上動态擴容
邏輯卷管理器是Linux系統用于對硬碟分區進行管理的一種機制,理論性較強,其建立初衷是為了解決硬碟裝置在建立分區後不易修改分區大小的缺陷。盡管對傳統的硬
盤分區進行強制擴容或縮容從理論上來講是可行的,但是卻可能造成資料的丢失。而LVM技術是在硬碟分區和檔案系統之間添加了一個邏輯層,它提供了一個抽象的卷
組,可以把多塊硬碟進行卷組合并。這樣一來,使用者不必關心實體硬碟裝置的底層架構和布局,就可以實作對硬碟分區的動态調整。LVM的技術架構如圖所示。
LVM常用的術語
實體存儲媒體(The physical media):LVM存儲媒體可以是磁盤分區,整個磁盤,RAID陣列或SAN磁盤,裝置必須初始化為LVM實體卷,才能與LVM結合使用
實體卷PV(physical volume) :實體卷就是LVM的基本存儲邏輯塊,但和基本的實體存儲媒體(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數,建立實體卷它可以用硬碟分區,也可以用硬碟本身;
卷組VG(Volume Group) :一個LVM卷組由一個或多個實體卷組成
邏輯卷LV(logical volume) :LV建立在VG之上,可以在LV之上建立檔案系統
PE(physical extents) :PV實體卷中可以配置設定的最小存儲單元,PE的大小是可以指定的,預設為4MB
LE(logical extent) : LV邏輯卷中可以配置設定的最小存儲單元,在同一個卷組中,LE的大小和PE是相同的,并且一一對應
部署邏輯卷
常用的LVM部署指令
功能/指令 實體卷管理 ;邏輯卷管理
掃描 pvscan lvscan
建立pvcreatelvcreate
顯示pvdisplaylvdisplay
删除pvremovelvremove
擴充 lvextend
縮小 lvreduce
第一步:添加兩塊磁盤
檢視磁盤
─root@zxw ~
╰─➤ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc
第二步:建立實體卷
╭─root@zxw ~
╰─➤ pvcreate /dve/sd{b,c}
Device /dve/sdb not found (or ignored by filtering).
Device /dve/sdc not found (or ignored by filtering).
第三步:建立卷組
╭─root@zxw ~
╰─➤ vgcreate vg_zhao /dev/sd{b,c} 建立卷組名vg-zhao 實體卷名為
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Volume group "vg_zhao" successfully created
第四步:建立邏輯卷
切割出一個500M的邏輯卷裝置
這裡需要注意切割機關的問題。在對邏輯卷進行切割時有兩種計量機關。第一種是以容量為機關,所使用的參數為-L。例如,使用-L 150M生成一個大小為150MB的邏
輯卷。另外一種是以基本單元的個數為機關,所使用的參數為-l。每個基本單元的大小預設為4MB。例如,使用-l 37可以生成一個大小為37×4MB=148MB的邏輯卷。
╭─root@zxw ~
╰─➤ lvcreate -L 500M -n lv_zhao vg_zhao
Logical volume "lv_zhao" created.
第五步:把生成好的邏輯卷進行格式化
╭─root@zxw ~
╰─➤ mkfs.xfs /dev/vg_zhao/lv_zhao
meta-data=/dev/vg_zhao/lv_zhao 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@zxw ~
╰─➤ mkdir /zhao 1 ↵
╭─root@zxw ~
╰─➤ mount /dev/vg_zhao/lv_zhao /zhao
╭─root@zxw ~
╰─➤ df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/mapper/cl-root 27G 4.0G 24G 15% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 140K 912M 1% /dev/shm
tmpfs 912M 9.0M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_zhao-lv_zhao 497M 26M 472M 6% /zhao
第九步:開機自啟
寫入/etc/rc.local
╭─root@zxw ~
╰─➤ echo "mount /dev/vg_zhao/lv_zhao /zhao" >> /etc/rc.local
Linux擴容邏輯卷xfs格式
第一步:直接擴容
╭─root@zxw ~
╰─➤ lvextend -L 1G /dev/vg_zhao/lv_zhao
Size of logical volume vg_zhao/lv_zhao changed from 500.00 MiB (125 extents) to 1.00 GiB (256 extents).
Logical volume vg_zhao/lv_zhao successfully resized.
╭─root@zxw ~
╰─➤ df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/mapper/cl-root 27G 4.0G 24G 15% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 140K 912M 1% /dev/shm
tmpfs 912M 9.0M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_zhao-lv_zhao 497M 26M 472M 6% /zhao
第二步: xfs-growfs使配置生效
╭─root@zxw ~
╰─➤ xfs_growfs /dev/vg_zhao/lv_zhao
meta-data=/dev/mapper/vg_zhao-lv_zhao 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 262144
╭─root@zxw ~
╰─➤ df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/mapper/cl-root 27G 4.0G 24G 15% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 140K 912M 1% /dev/shm
tmpfs 912M 9.0M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao
注意:
1. xfs格式的磁盤不需要解除安裝即可直接線上進行擴容
2. extX格式需要先解除安裝再進行擴容
3. XFS格式的磁盤類型隻支援擴容不支援縮容
LVM闊容——EXT4格式
第一步:建立一個ext4格式的邏輯卷
╭─root@zxw /
╰─➤ lvcreate -L 500M -n lv_ext4 vg_zhao
Logical volume "lv_ext4" created.
第二步:格式化為ext4格式
╭─root@zxw /
╰─➤ mkfs.ext4 /dev/vg_zhao/lv_ext4 1 ↵
mke2fs 1.42.9 (28-Dec-2013)
檔案系統标簽=
OS type: Linux
塊大小=1024 (log=0)
分塊大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一個資料塊=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
第三步:挂載
╭─root@zxw /
╰─➤ mkdir /ext4
╭─root@zxw /
╰─➤ mount /dev/vg_zhao/lv_ext4 /ext4
╭─root@zxw /
╰─➤ df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/mapper/cl-root 27G 4.0G 24G 15% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 140K 912M 1% /dev/shm
tmpfs 912M 9.0M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao
/dev/mapper/vg_zhao-lv_ext4 477M 2.3M 445M 1% /ext4
╭─root@zxw /
第四步:開始擴容
解除安裝
╭─root@zxw /
╰─➤ umount /ext4
╭─root@zxw /
╰─➤ df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/mapper/cl-root 27G 4.0G 24G 15% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 140K 912M 1% /dev/shm
tmpfs 912M 9.0M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao
第五步:擴容lventend
╭─root@zxw /
╰─➤ lvextend -L 1G /dev/vg_zhao/lv_ext4 5 ↵
Size of logical volume vg_zhao/lv_ext4 changed from 500.00 MiB (125 extents) to 1.00 GiB (256 extents).
Logical volume vg_zhao/lv_ext4 successfully resized.
第六步:磁盤檢測
╭─root@zxw /
╰─➤ e2fsck -f /dev/vg_zhao/lv_ext4 8 ↵
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接配接性
+/dev/vg_zhao/lv_ext4: 11/128016 files (0.0% non-contiguous), 26684/512000 blocks
第七步:擴容resize2fs
╭─root@zxw /
╰─➤ resize2fs /dev/vg_zhao/lv_ext4
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg_zhao/lv_ext4 to 1048576 (1k) blocks.
The filesystem on /dev/vg_zhao/lv_ext4 is now 1048576 blocks long.
第八步:挂載使用
╭─root@zxw /
╰─➤ mount /dev/vg_zhao/lv_ext4 /ext4
╭─root@zxw /
╰─➤ df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/mapper/cl-root 27G 4.0G 24G 15% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 140K 912M 1% /dev/shm
tmpfs 912M 9.0M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao
/dev/mapper/vg_zhao-lv_ext4 984M 2.8M 926M 1% /ext4
Linux縮小邏輯卷
相較于擴容邏輯卷,在對邏輯卷進行縮容操作時,其丢失資料的風險更大。是以在生産環境中執行相應操作時,一定要提前備份好資料。另外Linux系統規定,在對LVM
邏輯卷進行縮容操作之前,要先檢查檔案系統的完整性(當然這也是為了保證我們的資料安全)。在執行縮容操作前記得先把檔案系統解除安裝掉。
第一步:解除安裝
╭─root@zxw /
╰─➤ umount /ext4
╭─root@zxw /
╰─➤ df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/mapper/cl-root 27G 4.0G 24G 15% /
devtmpfs 897M 0 897M 0% /dev
tmpfs 912M 140K 912M 1% /dev/shm
tmpfs 912M 9.0M 903M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao
第二步:檢查系統完整性
╭─root@zxw /
╰─➤ e2fsck -f /dev/vg_zhao/lv_ext4 8 ↵
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接配接性
Pass 4: Checking reference counts
第5步: 檢查簇概要資訊
/dev/vg_zhao/lv_ext4: 11/260096 files (0.0% non-contiguous), 43846/1048576 blocks
第三步:大小重置
╭─root@zxw /
╰─➤ resize2fs /dev/vg_zhao/lv_ext4 500M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg_zhao/lv_ext4 to 512000 (1k) blocks.
The filesystem on /dev/vg_zhao/lv_ext4 is now 512000 blocks long.
第四步:執行lvreduce
╭─root@zxw /
╰─➤ lvreduce -L 200M /dev/vg_zhao/lv_ext4 5 ↵
WARNING: Reducing active logical volume to 200.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_zhao/lv_ext4? [y/n]: y
Size of logical volume vg_zhao/lv_ext4 changed from 1.00 GiB (256 extents) to 200.00 MiB (50 extents).
Logical volume vg_zhao/lv_ext4 successfully resized.
第五步:重新挂載使用
[root@zxw ~]# moun /dev/vg-zhao/lv-ext4 /ext4
[root@zxw ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.2G 16G 7% /
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-zhao-lv-ext 190M 1.6M 175M 1% /test1
Linux删除邏輯卷
第一步:取消挂載
root@zxw /
╰─➤ umount /zhao
第二步:删除邏輯卷裝置
╭─root@zxw /
╰─➤ lvremove /dev/vg_zhao/lv_* 5 ↵
Do you really want to remove active logical volume vg_zhao/lv_zhao? [y/n]: y
Logical volume "lv_zhao" successfully removed
Do you really want to remove active logical volume vg_zhao/lv_ext4? [y/n]: y
Logical volume "lv_ext4" successfully removed
第三步:删除卷組
╭─root@zxw /
╰─➤ vgremove vg_zhao 5 ↵
Volume group "vg_zhao" successfully removed
第四步:删除實體卷
╭─root@zxw /
╰─➤ pvremove /dev/sd{b,c}
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
第五:檢視
╭─root@zxw /
╰─➤ pvdisplay
--- Physical volume ---
PV Name /dev/sda2 系統自帶
VG Name cl
PV Size 29.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 7423
Free PE 1
Allocated PE 7422
PV UUID TeKpVh-Cq9R-8JBq-3dzt-yHAs-5gP7-GT02Kf
儲存并退出
列出分區
加載建立分區
檢視記憶體
起用swap
wsp格式寫入到到開機自啟
格式邏輯卷
接口 從整體的角度上,硬碟接口分為IDE、SATA、SCSI和SAS四種,IDE接口硬碟多用于家用産品中,也部分應用于伺服器,SCSI接口的硬碟則主要應用于伺服器市場,而SAS隻在高端伺服器上,價格昂貴。 硬碟種類 SATA硬碟:用SATA接口的硬碟又叫序列槽硬碟,是以後PC機的主流發展方向,因為其有較強的糾錯能力,錯誤一經發現能自動糾正,這樣就大大的提高了資料傳輸的安全性。新的SATA 使用了差動信号系統"differential-signal-amplified-system"。這種系統能有效的将噪聲從正常訊号中濾除,良好的噪聲濾除能力使得SATA隻要使用低電壓操作即可,和 Parallel ATA 高達5V的傳輸電壓相比,SATA 隻要0.5V(500mv) 的峰對峰值電壓即可操作于更高的速度之上。"比較正确的說法是:峰對峰值\'差模電壓\'"。一般轉速可達7200轉/分。SCSI硬碟:SCSI硬碟即采用SCSI接口的硬碟。 優點:SCSI接口具有應用範圍廣、多任務、帶寬大、CPU占用率低,以及熱插拔等。它由于性能好、穩定性高,是以在伺服器上得到廣泛應用。缺點:由于SCSI硬碟價格非常昂貴,是以一般的PC是不會使用SCSI硬碟。 一般轉速可達10000轉/分。SAS硬碟:SAS(Serial Attached SCSI)即串行連接配接SCSI,是新一代的SCSI技術,和現在流行的Serial ATA(SATA)硬碟相同,都是采用串行技術以獲得更高的傳輸速度,并通過縮短連結線改善内部空間等。改善存儲系統的效能、可用性和擴充性。 一般轉速可達15000轉/分,甚至更高。 分區符認識 MBR概述:全稱為Master Boot Record,即硬碟的主引導記錄。硬碟的0柱面、0磁頭、1扇區稱為主引導扇區(也叫主引導記錄MBR)。它由三個部分組成,主引導程式、硬碟分區表DPT(Disk Partition table)和分區有效标志(55AA)。在總共512位元組的主引導扇區裡主引導程式(boot lo ader)占446個位元組,第二部分是Partition table區(分區表),即DPT,占64個位元組,硬碟中分區有多少以及每一分區的大小都記在其中。第三部分是魔數,占2個位元組,固定為55AA。分區編号:主分區1-4 ,邏輯分區5……LINUX規定:邏輯分區必須建立在擴充分區之上,而不是建立在主分區上分區作用:主分區:主要是用來啟動作業系統的,它主要放的是作業系統的啟動或引導程式,/boot分區最好放在主分區上擴充分區不能使用的,它隻是做為邏輯分區的容器存在的,先建立一個擴充分區,在拓展分區之上建立邏輯分區;我們真正存放資料的是主分區和邏輯分區,大量資料都放在邏輯分區中。注意:使用分區工具fdisk對磁盤進行操作,分區,格式化(重點)注意:主分區+擴充分區 最多隻能有4個擴充分區可以是0個,最多是1個擴充分區不能直接使用,擴充分區必須首先建立成邏輯分區才能使用邏輯分區可以是0個 1個 多個 [root@ken ~]# ls /dev/sd*/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde命名方式: /dev/sd[a-z]n其中:a-z 表示裝置的序号,如sda表示第一塊scsi硬碟,sdb就是第二塊...... n 表示每塊磁盤上劃分的磁盤分區編号
檔案系統與資料資料 ;使用者在硬體儲存設備中執行的檔案建立、寫入、讀取、修改、轉存與控制等操作都是依靠檔案系統來完成的。檔案系統的作用是合理規劃硬碟,以保證使用者正常的使用需求。Linux系統支援數十種的檔案系統,而最常見的檔案系統如下所示。Ext3:是一款日志檔案系統,能夠在系統異常當機時避免檔案系統資料丢失,并能自動修複資料的不一緻與錯誤。然而,當硬碟容量較大時,所需的修複時間也會很長,而且也不能百分之百地保證資料不會丢失。它會把整個磁盤的每個寫入動作的細節都預先記錄下來,以便在發生異常當機後能回溯追蹤到被中斷的部分,然後嘗試進行修複。Ext4:Ext3的改進版本,作為RHEL 6系統中的預設檔案管理系統,它支援的存儲容量高達1EB(1EB=1,073,741,824GB),且能夠有無限多的子目錄。另外,Ext4檔案系統能夠批量配置設定block塊,進而極大地提高了讀寫效率。XFS:是一種高性能的日志檔案系統,而且是RHEL 7中預設的檔案管理系統,它的優勢在發生意外當機後尤其明顯,即可以快速地恢複可能被破壞的檔案,而且強大的日志功能隻用花費極低的計算和存儲性能。并且它最大可支援的存儲容量為18EB,這幾乎滿足了所有需求。 fdisk管理分區 參數 作用 m 檢視全部可用的參數 n添加新的分區d删除某個分區資訊l列出所有可用的分區類型 t 改變某個分區的類型p檢視分區表資訊w儲存并退出q不儲存直接退出 fdisk:磁盤分區,是Linux發行版本中最常用的分區工具用法:fdisk [選項] device 常用的選項: -l 檢視硬碟分區表 案例:在sdb盤上建一個分區,大小為100M在虛拟機上添加一塊硬碟
第一步:檢視磁盤 [root@ken ~]# ls /dev/sd*/dev/sda /dev/sda1 /dev/sda2 /dev/sdb 第二步:對sdb劃分一個100M的空間
[root@ken ~]# fdisk /dev/sdbWelcome 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 tableBuilding a new DOS disklabel with disk identifier 0x52997d99.Command (m for help): n #建立一個新的分區Partition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): #預設主分區,直接回車Using default response pPartition number (1-4, default 1): #預設為第一個分區編号,直接回車First sector (2048-41943039, default 2048): #預設第一個扇區開始位置,直接回車Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +100M #選擇大小,前面要使用加号Partition 1 of type Linux and of size 100 MiB is setCommand (m for help): P #檢視已經分好的磁盤Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x52997d99Device Boot Start End Blocks Id System/dev/sdb1 2048 206847 102400 83 LinuxCommand (m for help): w #w退出儲存,q退出不儲存The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
第三步:格式化新的磁盤分區使用之前必須先格式化
[root@ken ~]# mkfs.ext4 /dev/sdb1mke2fs 1.42.9 (28-Dec-2013)Filesystem label=OS type: LinuxBlock size=1024 (log=0)Fragment size=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks25688 inodes, 102400 blocks5120 blocks (5.00%) reserved for the super userFirst data block=1Maximum filesystem blocks=3368550413 block groups8192 blocks per group, 8192 fragments per group1976 inodes per groupSuperblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): doneWriting superblocks and filesystem accounting information: done
第四步:挂載使用
[root@ken ~]# mkdir /part[root@ken ~]# mount /dev/sdb1 /part[root@ken ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 17G 1.2G 16G 7% /devtmpfs 476M 0 476M 0% /devtmpfs 488M 0 488M 0% /dev/shmtmpfs 488M 7.7M 480M 2% /runtmpfs 488M 0 488M 0% /sys/fs/cgroup/dev/sda1 1014M 130M 885M 13% /boottmpfs 98M 0 98M 0% /run/user/0/dev/sdb1 93M 1.6M 85M 2% /part
第五步:寫入到配置檔案中,開機自啟[root@ken ~]# echo "/dev/sdb1 /part ext4 defaults 0 0" >> /etc/fstab /dev/sdb1/sdb1xfsdefaults00要挂載的分區裝置挂載點檔案系統類型挂載選項是否備份是否檢測 添加交換分區 SWAP(交換)分區是一種通過在硬碟中預先劃分一定的空間,然後将把記憶體中暫時不常用的資料臨時存放到硬碟中,以便騰出實體記憶體空間讓更活躍的程式服務來使用的技術,其設計目的是為了解決真實實體記憶體不足的問題。但由于交換分區畢竟是通過硬碟裝置讀寫資料的,速度肯定要比實體記憶體慢,是以隻有當真實的實體記憶體耗盡後才會調用交換分區的資源。交換分區的建立過程與前文講到的挂載并使用儲存設備的過程非常相似。在對/dev/sdb儲存設備進行分區操作前,有必要先說一下交換分區的劃分建議:在生産環境中,交換分區的大小一般為真實實體記憶體的1.5~2倍,為了讓大家更明顯地感受交換分區空間的變化,這裡取出一個大小為5GB的主分區作為交換分區資源。在分區建立完畢後儲存并退出即可: 第一步:劃分2G大小的磁盤
╭─root@zxw ~ ╰─➤ fdisk /dev/sdb歡迎使用 fdisk (util-linux 2.23.2)。
更改将停留在記憶體中,直到您決定将更改寫入磁盤。使用寫入指令前請三思。
指令(輸入 m 擷取幫助):n 建立Partition type: p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5)Select (default p): p 檢視分區号 (3,4,預設 3): 預設 回車即可起始 扇區 (20973568-41943039,預設為 20973568): 預設回車即可 将使用預設值 20973568Last 扇區, +扇區 or +size{K,M,G} (20973568-41943039,預設為 41943039):+2G 分區 3 已設定為 Linux 類型,大小設為 2 GiB
指令(輸入 m 擷取幫助):p 檢視分區
磁盤 /dev/sdb:21.5 GB, 21474836480 位元組,41943040 個扇區Units = 扇區 of 1 * 512 = 512 bytes扇區大小(邏輯/實體):512 位元組 / 512 位元組I/O 大小(最小/最佳):512 位元組 / 512 位元組磁盤标簽類型:dos磁盤辨別符:0x915dc123
裝置 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
指令(輸入 m 擷取幫助):wThe partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 裝置或資源忙.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)正在同步磁盤。第二步:識别新的分區╭─root@zxw ~ ╰─➤ ls /dev/sd*/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb5╭─root@zxw ~ ╰─➤ partprobe Warning: 無法以讀寫方式打開 /dev/sr0 (隻讀檔案系統)。/dev/sr0 已按照隻讀方式打開。╭─root@zxw ~ ╰─➤ ls /dev/sd* 再次列出分區 1 ↵/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5╭─root@zxw ~
第三步:格式化為swap類型─root@zxw ~ ╰─➤ mkswap /dev/sdb3正在設定交換空間版本 1,大小 = 2097148 KiB無标簽,UUID=47ed5ae2-ee9b-4b4b-83b3-563c00fe51ae第四步:啟動swap╭─root@zxw ~ ╰─➤ free -h total used free shared buff/cache availableMem: 1.8G 448M 927M 10M 447M 1.2GSwap: 2.0G 0B 2.0G╭─root@zxw ~ ╰─➤ swapon /dev/sdb3╭─root@zxw ~ ╰─➤ free -h total used free shared buff/cache availableMem: 1.8G 450M 925M 10M 447M 1.2GSwap: 4.0G 0B 4.0G
第四步:寫入到配置檔案中─root@zxw ~ ╰─➤ echo "swapon /dev/sdb3" >> /etc/rc.local╭─root@zxw ~ ╰─➤ vim /etc/rc.local
第一步:建立目錄[root@zxw ~]# mkdir /swap 第二步:建立檔案[root@zxw ~]# dd if=/dev/zero of=/swap/swap bs=2M count=20142014+0 records in2014+0 records out4223664128 bytes (4.2 GB) copied, 29.3039 s, 144 MB/s 第三步:格式化[root@zxw ~]# mkswap /swap/swapSetting up swapspace version 1, size = 4124668 KiBno label, UUID=211cb23a-49b5-46fc-b568-f167d4b6d06a 第四步:寫入檔案[root@zxw ~]# echo “/swap/swap swap swap defaults 0 0” >> /etc/fstab[root@zxw ~]# mount -a[root@zxw ~]# free -htotal used free shared buff/cache availableMem: 974M 85M 69M 7.6M 819M 712MSwap: 4.0G 0B 4.0G[root@ken ~]# swapon -aswapon: /swap/swap: insecure permissions 0644, 0600 suggested.[root@ken ~]# free -htotal used free shared buff/cache availableMem: 974M 88M 66M 7.6M 819M 709MSwap: 7.9G 0B 7.9G 第五步:修改權限[root@ken ~]# chmod 0600 /swap/swap
第五步:停止swap使用swapoff可以停止swap
[root@zxw ~]# free -h total used free shared buff/cache availableMem: 974M 93M 751M 7.6M 129M 731MSwap: 7.0G 0B 7.0G[root@zxw ~]# swapoff Usage: swapoff [options] [<spec>]Options: -a, --all disable all swaps from /proc/swaps -v, --verbose verbose mode-h, --help display this help and exit -V, --version output version information and exitThe <spec> parameter: -L <label> LABEL of device to be used -U <uuid> UUID of device to be used LABEL=<label> LABEL of device to be used UUID=<uuid> UUID of device to be used <device> name of device to be used <file> name of file to be usedFor more details see swapoff(8).[root@zxw~]# swapoff -a[root@zxw ~]# free -h total used free shared buff/cache availableMem: 974M 88M 758M 7.6M 127M 737MSwap: 0B 0B 0B
LVM邏輯卷管理器 實戰場景:對于生産環境下的伺服器來說,如果存儲資料的分區磁盤空間不夠了怎麼辦?
答:隻能換一個更大的磁盤。如果用了一段時間後,空間又不夠了,怎麼辦?再加一塊更大的?換磁盤的過程中,還需要把資料從一個硬碟複制到另一個硬碟,過程太慢了。 解決方案:使用LVM線上動态擴容 邏輯卷管理器是Linux系統用于對硬碟分區進行管理的一種機制,理論性較強,其建立初衷是為了解決硬碟裝置在建立分區後不易修改分區大小的缺陷。盡管對傳統的硬碟分區進行強制擴容或縮容從理論上來講是可行的,但是卻可能造成資料的丢失。而LVM技術是在硬碟分區和檔案系統之間添加了一個邏輯層,它提供了一個抽象的卷組,可以把多塊硬碟進行卷組合并。這樣一來,使用者不必關心實體硬碟裝置的底層架構和布局,就可以實作對硬碟分區的動态調整。LVM的技術架構如圖所示。 LVM常用的術語 實體存儲媒體(The physical media):LVM存儲媒體可以是磁盤分區,整個磁盤,RAID陣列或SAN磁盤,裝置必須初始化為LVM實體卷,才能與LVM結合使用實體卷PV(physical volume) :實體卷就是LVM的基本存儲邏輯塊,但和基本的實體存儲媒體(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數,建立實體卷它可以用硬碟分區,也可以用硬碟本身;卷組VG(Volume Group) :一個LVM卷組由一個或多個實體卷組成 邏輯卷LV(logical volume) :LV建立在VG之上,可以在LV之上建立檔案系統PE(physical extents) :PV實體卷中可以配置設定的最小存儲單元,PE的大小是可以指定的,預設為4MBLE(logical extent) : LV邏輯卷中可以配置設定的最小存儲單元,在同一個卷組中,LE的大小和PE是相同的,并且一一對應 部署邏輯卷 常用的LVM部署指令功能/指令 實體卷管理 ;邏輯卷管理 掃描 pvscan lvscan 建立pvcreatelvcreate顯示pvdisplaylvdisplay删除pvremovelvremove擴充 lvextend縮小 lvreduce第一步:添加兩塊磁盤
檢視磁盤─root@zxw ~ ╰─➤ ls /dev/sd*/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc
第二步:建立實體卷╭─root@zxw ~ ╰─➤ pvcreate /dve/sd{b,c} Device /dve/sdb not found (or ignored by filtering). Device /dve/sdc not found (or ignored by filtering).
第三步:建立卷組 ╭─root@zxw ~ ╰─➤ vgcreate vg_zhao /dev/sd{b,c} 建立卷組名vg-zhao 實體卷名為 Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created. Volume group "vg_zhao" successfully created第四步:建立邏輯卷切割出一個500M的邏輯卷裝置這裡需要注意切割機關的問題。在對邏輯卷進行切割時有兩種計量機關。第一種是以容量為機關,所使用的參數為-L。例如,使用-L 150M生成一個大小為150MB的邏輯卷。另外一種是以基本單元的個數為機關,所使用的參數為-l。每個基本單元的大小預設為4MB。例如,使用-l 37可以生成一個大小為37×4MB=148MB的邏輯卷。╭─root@zxw ~ ╰─➤ lvcreate -L 500M -n lv_zhao vg_zhao Logical volume "lv_zhao" created.第五步:把生成好的邏輯卷進行格式化
╭─root@zxw ~ ╰─➤ mkfs.xfs /dev/vg_zhao/lv_zhaometa-data=/dev/vg_zhao/lv_zhao isize=512 agcount=4, agsize=32000 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0data = bsize=4096 blocks=128000, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0第六步:挂載使用
╭─root@zxw ~ ╰─➤ mkdir /zhao 1 ↵╭─root@zxw ~ ╰─➤ mount /dev/vg_zhao/lv_zhao /zhao ╭─root@zxw ~ ╰─➤ df -h 檔案系統 容量 已用 可用 已用% 挂載點/dev/mapper/cl-root 27G 4.0G 24G 15% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 140K 912M 1% /dev/shmtmpfs 912M 9.0M 903M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 173M 842M 18% /boottmpfs 183M 28K 183M 1% /run/user/0/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_zhao-lv_zhao 497M 26M 472M 6% /zhao第九步:開機自啟寫入/etc/rc.local╭─root@zxw ~ ╰─➤ echo "mount /dev/vg_zhao/lv_zhao /zhao" >> /etc/rc.local
Linux擴容邏輯卷xfs格式 第一步:直接擴容╭─root@zxw ~ ╰─➤ lvextend -L 1G /dev/vg_zhao/lv_zhao Size of logical volume vg_zhao/lv_zhao changed from 500.00 MiB (125 extents) to 1.00 GiB (256 extents). Logical volume vg_zhao/lv_zhao successfully resized.╭─root@zxw ~ ╰─➤ df -h檔案系統 容量 已用 可用 已用% 挂載點/dev/mapper/cl-root 27G 4.0G 24G 15% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 140K 912M 1% /dev/shmtmpfs 912M 9.0M 903M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 173M 842M 18% /boottmpfs 183M 28K 183M 1% /run/user/0/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_zhao-lv_zhao 497M 26M 472M 6% /zhao
第二步: xfs-growfs使配置生效╭─root@zxw ~ ╰─➤ xfs_growfs /dev/vg_zhao/lv_zhaometa-data=/dev/mapper/vg_zhao-lv_zhao isize=512 agcount=4, agsize=32000 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0data = bsize=4096 blocks=128000, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from 128000 to 262144╭─root@zxw ~ ╰─➤ df -h檔案系統 容量 已用 可用 已用% 挂載點/dev/mapper/cl-root 27G 4.0G 24G 15% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 140K 912M 1% /dev/shmtmpfs 912M 9.0M 903M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 173M 842M 18% /boottmpfs 183M 28K 183M 1% /run/user/0/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao 注意:1. xfs格式的磁盤不需要解除安裝即可直接線上進行擴容2. extX格式需要先解除安裝再進行擴容3. XFS格式的磁盤類型隻支援擴容不支援縮容
LVM闊容——EXT4格式第一步:建立一個ext4格式的邏輯卷╭─root@zxw / ╰─➤ lvcreate -L 500M -n lv_ext4 vg_zhao Logical volume "lv_ext4" created.第二步:格式化為ext4格式╭─root@zxw / ╰─➤ mkfs.ext4 /dev/vg_zhao/lv_ext4 1 ↵mke2fs 1.42.9 (28-Dec-2013)檔案系統标簽=OS type: Linux塊大小=1024 (log=0)分塊大小=1024 (log=0)Stride=0 blocks, Stripe width=0 blocks128016 inodes, 512000 blocks25600 blocks (5.00%) reserved for the super user第一個資料塊=1Maximum filesystem blocks=3407872063 block groups8192 blocks per group, 8192 fragments per group2032 inodes per groupSuperblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (8192 blocks): 完成Writing superblocks and filesystem accounting information: 完成
第三步:挂載╭─root@zxw / ╰─➤ mkdir /ext4╭─root@zxw / ╰─➤ mount /dev/vg_zhao/lv_ext4 /ext4╭─root@zxw / ╰─➤ df -h檔案系統 容量 已用 可用 已用% 挂載點/dev/mapper/cl-root 27G 4.0G 24G 15% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 140K 912M 1% /dev/shmtmpfs 912M 9.0M 903M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 173M 842M 18% /boottmpfs 183M 28K 183M 1% /run/user/0/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao/dev/mapper/vg_zhao-lv_ext4 477M 2.3M 445M 1% /ext4╭─root@zxw /
第四步:開始擴容解除安裝 ╭─root@zxw / ╰─➤ umount /ext4╭─root@zxw / ╰─➤ df -h檔案系統 容量 已用 可用 已用% 挂載點/dev/mapper/cl-root 27G 4.0G 24G 15% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 140K 912M 1% /dev/shmtmpfs 912M 9.0M 903M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 173M 842M 18% /boottmpfs 183M 28K 183M 1% /run/user/0/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao 第五步:擴容lventend ╭─root@zxw / ╰─➤ lvextend -L 1G /dev/vg_zhao/lv_ext4 5 ↵ Size of logical volume vg_zhao/lv_ext4 changed from 500.00 MiB (125 extents) to 1.00 GiB (256 extents). Logical volume vg_zhao/lv_ext4 successfully resized.第六步:磁盤檢測╭─root@zxw / ╰─➤ e2fsck -f /dev/vg_zhao/lv_ext4 8 ↵e2fsck 1.42.9 (28-Dec-2013)第一步: 檢查inode,塊,和大小第二步: 檢查目錄結構第3步: 檢查目錄連接配接性+/dev/vg_zhao/lv_ext4: 11/128016 files (0.0% non-contiguous), 26684/512000 blocks第七步:擴容resize2fs╭─root@zxw / ╰─➤ resize2fs /dev/vg_zhao/lv_ext4 resize2fs 1.42.9 (28-Dec-2013)Resizing the filesystem on /dev/vg_zhao/lv_ext4 to 1048576 (1k) blocks.The filesystem on /dev/vg_zhao/lv_ext4 is now 1048576 blocks long.
第八步:挂載使用╭─root@zxw / ╰─➤ mount /dev/vg_zhao/lv_ext4 /ext4╭─root@zxw / ╰─➤ df -h檔案系統 容量 已用 可用 已用% 挂載點/dev/mapper/cl-root 27G 4.0G 24G 15% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 140K 912M 1% /dev/shmtmpfs 912M 9.0M 903M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 173M 842M 18% /boottmpfs 183M 28K 183M 1% /run/user/0/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao/dev/mapper/vg_zhao-lv_ext4 984M 2.8M 926M 1% /ext4
Linux縮小邏輯卷 相較于擴容邏輯卷,在對邏輯卷進行縮容操作時,其丢失資料的風險更大。是以在生産環境中執行相應操作時,一定要提前備份好資料。另外Linux系統規定,在對LVM邏輯卷進行縮容操作之前,要先檢查檔案系統的完整性(當然這也是為了保證我們的資料安全)。在執行縮容操作前記得先把檔案系統解除安裝掉。 第一步:解除安裝╭─root@zxw / ╰─➤ umount /ext4╭─root@zxw / ╰─➤ df -h檔案系統 容量 已用 可用 已用% 挂載點/dev/mapper/cl-root 27G 4.0G 24G 15% /devtmpfs 897M 0 897M 0% /devtmpfs 912M 140K 912M 1% /dev/shmtmpfs 912M 9.0M 903M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgroup/dev/sda1 1014M 173M 842M 18% /boottmpfs 183M 28K 183M 1% /run/user/0/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64/dev/mapper/vg_zhao-lv_zhao 1021M 26M 996M 3% /zhao 第二步:檢查系統完整性 ╭─root@zxw / ╰─➤ e2fsck -f /dev/vg_zhao/lv_ext4 8 ↵e2fsck 1.42.9 (28-Dec-2013)第一步: 檢查inode,塊,和大小第二步: 檢查目錄結構第3步: 檢查目錄連接配接性Pass 4: Checking reference counts第5步: 檢查簇概要資訊/dev/vg_zhao/lv_ext4: 11/260096 files (0.0% non-contiguous), 43846/1048576 blocks
第三步:大小重置
╭─root@zxw / ╰─➤ resize2fs /dev/vg_zhao/lv_ext4 500Mresize2fs 1.42.9 (28-Dec-2013)Resizing the filesystem on /dev/vg_zhao/lv_ext4 to 512000 (1k) blocks.The filesystem on /dev/vg_zhao/lv_ext4 is now 512000 blocks long.
第四步:執行lvreduce
╭─root@zxw / ╰─➤ lvreduce -L 200M /dev/vg_zhao/lv_ext4 5 ↵ WARNING: Reducing active logical volume to 200.00 MiB. THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce vg_zhao/lv_ext4? [y/n]: y Size of logical volume vg_zhao/lv_ext4 changed from 1.00 GiB (256 extents) to 200.00 MiB (50 extents). Logical volume vg_zhao/lv_ext4 successfully resized.第五步:重新挂載使用
[root@zxw ~]# moun /dev/vg-zhao/lv-ext4 /ext4[root@zxw ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/centos-root 17G 1.2G 16G 7% /devtmpfs 476M 0 476M 0% /devtmpfs 488M 0 488M 0% /dev/shmtmpfs 488M 7.7M 480M 2% /runtmpfs 488M 0 488M 0% /sys/fs/cgroup/dev/sda1 1014M 130M 885M 13% /boottmpfs 98M 0 98M 0% /run/user/0/dev/mapper/vg-zhao-lv-ext 190M 1.6M 175M 1% /test1
Linux删除邏輯卷 第一步:取消挂載
root@zxw / ╰─➤ umount /zhao
第二步:删除邏輯卷裝置╭─root@zxw / ╰─➤ lvremove /dev/vg_zhao/lv_* 5 ↵Do you really want to remove active logical volume vg_zhao/lv_zhao? [y/n]: y Logical volume "lv_zhao" successfully removedDo you really want to remove active logical volume vg_zhao/lv_ext4? [y/n]: y Logical volume "lv_ext4" successfully removed第三步:删除卷組 ╭─root@zxw / ╰─➤ vgremove vg_zhao 5 ↵ Volume group "vg_zhao" successfully removed第四步:删除實體卷
╭─root@zxw / ╰─➤ pvremove /dev/sd{b,c} Labels on physical volume "/dev/sdb" successfully wiped. Labels on physical volume "/dev/sdc" successfully wiped.第五:檢視╭─root@zxw / ╰─➤ pvdisplay --- Physical volume --- PV Name /dev/sda2 系統自帶 VG Name cl PV Size 29.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 7423 Free PE 1 Allocated PE 7422 PV UUID TeKpVh-Cq9R-8JBq-3dzt-yHAs-5gP7-GT02Kf
儲存并退出
列出分區
加載建立分區
檢視記憶體
起用swap
wsp格式寫入到到開機自啟
格式邏輯卷