天天看點

Linux雲計算【第一階段】第七章:儲存管理第七章:儲存管理一.磁盤儲存管理概念二.磁盤基本分區三.邏輯卷LVM四.交換分區

第七章:儲存管理

主要知識點:

基本分區、邏輯卷LVM、EXT3/4/XFS檔案系統、RAID

一.磁盤儲存管理概念

機械硬碟 HDD 固态硬碟 SSD

SSD的優勢:讀取速度快,閃存晶片、防震抗摔,資料丢失性可能小,重量輕。

實體硬碟: /dev/sd[a-z]

KVM虛拟化: /dev/vd[a-z]

從存儲連接配接方式

本地存儲 例如DellR730本地磁盤

外部存儲 scsi線 sata線 sas線 FC線

網絡存儲 以太網絡(iscsi, glusterFS,ceph) FC網絡**

從分區方式區分

MBR <2TB fdisk 14個分區 (4個主分區,擴充分區,邏輯分區) 例如: 3主 + 1擴充(n邏輯)

GPT >2TB gdisk(parted) 128個主分區 注意:從MBR轉到GPT,或從GPT轉換到MBR會導緻資料全部丢失!

MBR: 磁盤引導 //分完區之後不可直接使用,需要先格式化

Linux雲計算【第一階段】第七章:儲存管理第七章:儲存管理一.磁盤儲存管理概念二.磁盤基本分區三.邏輯卷LVM四.交換分區
Linux雲計算【第一階段】第七章:儲存管理第七章:儲存管理一.磁盤儲存管理概念二.磁盤基本分區三.邏輯卷LVM四.交換分區

=====================================================================

二.磁盤基本分區

基本分區(MBR|GPT) ----> Filesystem ----> mount

實戰條件:首先在虛拟機添加一塊虛拟磁盤

[[email protected] ~]# ll /dev/sd*        //長格式檢視系統上所有的磁盤
[[email protected] ~]#  lsblk             //檢視磁盤資訊

1.fdisk  指令   【建立分區】
MBR   14個分區(4個主分區,擴充分區,邏輯分區)
[[email protected] ~]# fdisk /dev/sdc     //對sdc盤進行分區
歡迎使用 fdisk (util-linux 2.23.2)。

更改将停留在記憶體中,直到您決定将更改寫入磁盤。
使用寫入指令前請三思。

Device does not contain a recognized partition table
使用磁盤辨別符 0xe666fc31 建立新的 DOS 磁盤标簽。

指令(輸入 m 擷取幫助):m    //輸入'm' 可查詢幫助指令
指令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition       //删除一個已有的分區
   g   create a new empty GPT partition table    //建立一個空的GPT格式分區表,預設為dos  
   G   create an IRIX (SGI) partition table
   l   list known partition types         //列出分區類型
   m   print this menu                   //列印幫助資訊
   n   add a new partition                //添加一個新的分區
   o   create a new empty DOS partition table      // 建立一個空的DOS格式分區表,預設為dos  
   p   print the partition table               //列印目前的分區表
   q   quit without saving changes            //  不儲存退出
   s   create a new empty Sun disklabel
   t   change a partition's system id         //改變分區的系統ID
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit           //儲存分區變更
   x   extra functionality (experts only)
指令(輸入 m 擷取幫助):n   // 按n建立分區  常用指令有以上備注中文翻譯的,其他的如若後續需要可以自己去查找翻譯。
ommand (m for help): p     //選擇p,列印目前分區表
分區号 (1-4,預設 1):      //Enter鍵,選擇預設即可
起始 扇區 (2048-20971519,預設為 2048):    //繼續回車預設
Last 扇區, +扇區 or +size{K,M,G} (2048-20971519,預設為 20971519):+2G     //這裡選擇配置磁盤大小,可自定義。
指令(輸入 m 擷取幫助):n   // 按n建立分區  常用指令有以上備注中文翻譯的,其他的如若後續需要可以自己去查找翻譯。
ommand (m for help): p     //選擇p,列印目前分區表
分區号 (1-4,預設 1):      //Enter鍵,選擇預設即可
起始 扇區 (2048-20971519,預設為 2048):    //繼續回車預設
Last 扇區, +扇區 or +size{K,M,G} (2048-20971519,預設為 20971519):+2G     //這裡選擇配置磁盤大小,可自定義。
指令(輸入 m 擷取幫助):n   // 按n建立分區  常用指令有以上備注中文翻譯的,其他的如若後續需要可以自己去查找翻譯。
ommand (m for help): p     //選擇p,列印目前分區表
分區号 (1-4,預設 1):      //Enter鍵,選擇預設即可
起始 扇區 (2048-20971519,預設為 2048):    //繼續回車預設
Last 扇區, +扇區 or +size{K,M,G} (2048-20971519,預設為 20971519):+2G     //這裡選擇配置磁盤大小,可自定義。

指令(輸入 m 擷取幫助):n     //注意這邊已經建立三個磁盤了是以第四個就要選擇擴充分區,下面選擇e
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e         
起始 扇區 (12584960-20971519,預設為 12584960):     //回車預設
Last 扇區, +扇區 or +size{K,M,G} (12584960-20971519,預設為 20971519):    //注意這裡是建立擴充,是以剩餘的儲存全部給予擴充分區,當然也可自定義
指令(輸入 m 擷取幫助):n       //選擇n建立邏輯分區
起始 扇區 (12587008-20971519,預設為 12587008):      //選擇預設
Last 扇區, +扇區 or +size{K,M,G} (12587008-20971519,預設為 20971519):+1G              //注意,這裡需要添加記憶體了,如果回車那就全部記憶體給予這一個邏輯分區 
指令(輸入 m 擷取幫助):n      //選擇n
起始 扇區 (14686208-20971519,預設為 14686208):      //回車預設
Last 扇區, +扇區 or +size{K,M,G} (14686208-20971519,預設為 20971519):+1G     //增加儲存
指令(輸入 m 擷取幫助):n      //選擇n
起始 扇區 (14686208-20971519,預設為 14686208):      //回車預設
Last 扇區, +扇區 or +size{K,M,G} (14686208-20971519,預設為 20971519):       //回車預設,這裡預設是把所有記憶體都放至最後一個邏輯分區。

指令(輸入 m 擷取幫助):p          //按p檢視目前磁盤分區資訊

磁盤 /dev/sdc:10.7 GB, 10737418240 位元組,20971520 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/實體):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁盤标簽類型:dos
磁盤辨別符:0x8ae6b12c

   裝置 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     4196351     2097152   83  Linux
/dev/sdc2         4196352     8390655     2097152   83  Linux
/dev/sdc3         8390656    12584959     2097152   83  Linux
/dev/sdc4        12584960    20971519     4193280    5  Extended
/dev/sdc5        12587008    14684159     1048576   83  Linux
/dev/sdc6        14686208    16783359     1048576   83  Linux
/dev/sdc7        16785408    20971519     2093056   83  Linux

指令(輸入 m 擷取幫助):w        //儲存分區并退出
ps:如果添加儲存失敗了,^c 退出重來即可。
[[email protected] ~]# lsblk            //檢視磁盤分區資訊
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda               8:0    0   20G  0 disk  
├─sda1            8:1    0    1G  0 part  /boot
└─sda2            8:2    0   19G  0 part  
  ├─centos-root 253:0    0   17G  0 lvm   /
  └─centos-swap 253:1    0    2G  0 lvm   [SWAP]
sdb               8:16   0   10G  0 disk  
sdc               8:32   0   10G  0 disk  
├─sdc1            8:33   0    2G  0 part  
├─sdc2            8:34   0    2G  0 part  
├─sdc3            8:35   0    2G  0 part  
├─sdc4            8:36   0    1K  0 part  
├─sdc5            8:37   0    1G  0 part  
├─sdc6            8:38   0    1G  0 part  
└─sdc7            8:39   0    2G  0 part 

2 gdisk   
GPT  128個主分區
這裡操作和以上操作類似,這裡就不過多講解了。

3.建立檔案系統(格式化)centos7 預設使用xfs  //系統必須格式化才可使用和window原理相同
[[email protected] ~]# mkfs.xfs /dev/sdc1       //注意每個磁盤分區完之後必須要進行格式化才能正常使用
[[email protected] ~]# mkfs.ext4 /dev/sdc2      //使用ext4格式化磁盤分區

4.挂載
[[email protected] ~]# mkdir /mnt/disk1       //建立挂載目錄,名稱自定義
[[email protected] ~]# mkdir /mnt/disk1       //建立挂載目錄
[[email protected] ~]# mount -t xfs /dev/sdc1 /mnt/disk1    //臨時挂載,重新開機後會失效
[[email protected] ~]# umount /mnt/disk1       //取消挂載 
[[email protected] ~]# vim /etc/fstab          //永久挂載配置檔案
UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1"  /mnt/disk1   auto    defaults    0 0         
UUID="4d26172c-7aff-4388-baa5-c6756c014d52"  /mnt/disk2    ext4    ro    0 0            //格式如下,先要執行blkid查詢需要挂載的UUID
[[email protected] ~]# mount -a              //重新加載挂載資訊
[[email protected] ~]# df -Th                //檢視挂載資訊


如果挂載失敗,導緻機器無法啟動:
1.開機界面按e進入grub系統界面:
2.在linux16行末尾輸入 rd.break console=tty1
3.ctrl + x  重新加載啟動
4.mount -o remount,rw /sysroot    
5.chroot /sysroot
6.passwd                               #輸入2次密碼
7.touch /.autorelabel
8.exit
9.reboot      //重新系統然後輸入密碼即可正常使用


           

=====================================================================

三.邏輯卷LVM

1.LVM 管理

線上擴容 online

資料遷移 online

建立LVM VG擴充/縮小 LV擴容 檔案系統擴容 //主要學習目标

基本分區(MBR|GPT) ----> Filesystem ----> mount

邏輯卷LVM ----> Filesystem ----> mount

PE: Physical extent 實體擴充 4M 8M 16M 32M 64M 建立VG時指定 -s 8M

LE: Logical extent 邏輯擴充

實戰需要準備環境可以使:/dev/sdc1

實戰示範:
[[email protected] ~]# ll /dev/sdb                    //檢視sdc磁盤

1.建立pv
[[email protected] ~]# pvcreate /dev/sdb3        //建立pv
  Physical volume "/dev/sdb3" successfully created.
[[email protected] ~]# pvs        //檢視pv    pvscan   pvdisplay   //都可以檢視pv,三種檢視方式
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <19.00g      0 
  /dev/sdb3         lvm2 ---     2.00g   2.00g


2.建立vg
[[email protected] ~]# vgcreate vg3 /dev/sdb3           //建立vg3
  Volume group "vg3" successfully created       //則顯示成功
[[email protected] ~]# vgs                //檢視vg資訊   vgscan    vgdispay   //都可檢視vg資訊


3.建立lv
[[email protected] ~]# lvcreate -l 20 -n lv3 vg3        //建立lv3
 Logical volume "lv3" created.                 //顯示此資訊表示成功
[[email protected] ~]# lvcreate -L 200M -n lv3 vg3    //建立lv3 方法二 -L 後加上lv記憶體大小  -l 20代表PE,1PE等于4M,也就是80M大小
[[email protected] ~]# lvs      //檢視lv資訊  lvscan   lvmdiskscan  //都可檢視lv資訊

4.建立檔案系統并挂載
[[email protected] ~]# mkfs.xfs /dev/vg3/lv3            //建立檔案系統xfs格式,并格式化
[[email protected] ~]# mkdir -pv /mnt/disk3             //建立準備挂載的目錄
[[email protected] ~]# mount -t xfs /dev/vg3/lv3 /mnt/disk3    //進行挂載

[[email protected] ~]# mkfs.ext4 /dev/vg1/lv2          //建立系統檔案ext4格式,并格式化
[[email protected] ~]# mkdir /mnt/lv1 /mnt/lv2         //建立lv1 lv2挂載目錄 
[[email protected] ~]#  vim /etc/fstab                //進入永久挂載系統配置檔案      ,先查詢blkid ,查詢UUID資訊。
/dev/vg1/lv1    /mnt/lv1        xfs     defaults 0 0
/dev/vg1/lv2    /mnt/lv2        ext4    defaults 0 0
[[email protected] ~]# mount -a           //重新加載系統資訊
[[email protected] ~]# df -Th             //顯示所有磁盤挂載資訊



5.VG管理
5.1 .擴大VG vgextend
1.pv
[[email protected] ~]# pvcreate /dev/sdd
2.vgextend
[[email protected] ~]# vgextend vg1 /dev/sdd      //vg1卷組名字,将/dev/vde擴充到vg1中
3.vgs                                //檢視vg擴充資訊
 VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <29.00g  4.00m
  vg1      2   2   0 wz--n-   1.99g <1.76g

5.2 減小VG      //企業中堅決先備份在使用,一般不建議使用
[[email protected] ~]# pvs
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <29.00g    4.00m
  /dev/sdb   vg1    lvm2 a--  1020.00m  780.00m
  /dev/sdc   vg1    lvm2 a--  1020.00m 1020.00m
[[email protected] ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <29.00g  4.00m
  vg1      2   2   0 wz--n-   1.99g <1.76g
[[email protected] ~]# vgreduce vg1 /dev/sdc
  Removed "/dev/sdc" from volume group "vg1"
[[email protected] ~]# vgs
  VG     #PV #LV #SN Attr   VSize    VFree  
  centos   1   2   0 wz--n-  <29.00g   4.00m
  vg1      1   2   0 wz--n- 1020.00m 780.00m
[[email protected] ~]# pvs
  PV         VG     Fmt  Attr PSize    PFree  
  /dev/sda2  centos lvm2 a--   <29.00g   4.00m
  /dev/sdb   vg1    lvm2 a--  1020.00m 780.00m
  /dev/sdc          lvm2 ---     1.00g   1.00g

5.3.pvmove資料到其它PV
首先要保證有備用pv(要屬于一個vg)
可以先在/dev/vdd建立出一個邏輯卷之後,進行測試
[[email protected] ~]# pvs               //檢視pvs
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sdc5  vg3    lvm2 a--  1020.00m  940.00m
  /dev/sdc6  vg3    lvm2 a--  1020.00m 1020.00m
[[email protected] ~]# pvmove /dev/sd5 /dev/sdc6       //将sdc5 資料遷移至sdc6
  /dev/sdc5: Moved: 25.00%
  /dev/sdc5: Moved: 100.00%
[[email protected] ~]# lsblk             //檢視 磁盤資訊
 ├─sdc5            8:37   0    1G  0 part  
 ├─sdc6            8:38   0    1G  0 part  
 │ └─vg3-lv3     253:4    0   80M  0 lvm   
 └─sdc7            8:39   0    2G  0 part  
 

5.4LV擴容
[[email protected] ~]# vgs               //檢視vgs資訊
  VG     #PV #LV #SN Attr   VSize    VFree  
  centos   1   2   0 wz--n-  <19.00g      0 
  vg3      2   1   0 wz--n-    1.99g   1.91g
  vg4      1   0   0 wz--n-   <2.00g  <2.00g
[[email protected] ~]# lvextend -L 800M /dev/vg3/lv3      //擴充到800M
  Size of logical volume vg3/lv3 changed from 80.00 MiB (20 extents) to 800.00 MiB (200 extents).
  Logical volume vg3/lv3 successfully resized.
[[email protected] ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                                                                
  lv3  vg3    -wi-a----- 800.00m        
[[email protected] ~]# lvextend -L +800M /dev/vg3/lv3     //在原有基礎上加800M
  Size of logical volume vg3/lv3 changed from 800.00 MiB (200                  extents) to 1.56 GiB (400 extents).
  Logical volume vg3/lv3 successfully resized.
[[email protected] ~]# lvs           //檢視lv資訊
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                                                                  
  lv3  vg3    -wi-a-----   1.56g                                                    


           

=====================================================================

四.交換分區

交換分區管理 Swap

作用: ‘提升‘ 記憶體的容量,防止OOM(Out Of Memory)

實戰:

1.檢視目前的交換分區
[[email protected] ~]# free -m         //檢視記憶體資訊
              total        used        free      shared  buff/cache   available
Mem:           1819         210         986           9         623        1388
Swap:          2047           0        2047

[[email protected] ~]# swapon -s                //檢視挂載資訊
檔案名                          類型            大小    已用    權限
/dev/dm-1                               partition       2097148 0       -2


2.增加交換分區 可以是基本分區,LVM,File
[[email protected] ~]# fdisk /dev/sdb    (t轉換分區的ID 82)
[[email protected] ~]# partprobe /dev/sdb   通知系統分區表的變化
[[email protected] ~]# ll /dev/sdb*        //檢視

[[email protected] ~]# mkswap /dev/sdb1        //初始化
[[email protected] ~]# blkid /dev/sdb1         //查找sdb1 UUID
[[email protected] ~]# vim /etc/fstab           //進入永久挂載配置檔案
UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap    swap default 0 0
[[email protected] ~]# swapon -a	(讀取/etc/fstab)
[[email protected] ~]# swapon -s
[[email protected] ~]#  df -Th         //檢視挂載資訊





           

繼續閱讀