天天看點

磁盤介紹 - 我就是我沒毛病

磁盤介紹

接口

從整體的角度上,硬碟接口分為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格式寫入到到開機自啟

格式邏輯卷