1. 程式人生 > >linux學習 lesson16磁碟的加密、配額和LVM

linux學習 lesson16磁碟的加密、配額和LVM

一、磁碟的加密

磁碟加密的定義:

眾所周知,磁盤裡的資料都是非常重要的。為了保護磁碟資料要進行磁碟加密。在RHEL系統中,可以使用cryptsetup工具對磁碟進行加密操作,再建立檔案系統,這樣強力破鎖也會伴隨著資料的直接銷燬,實現資料的安全性。

1.命令方法加密

1)加密格式化:必須在解除安裝狀態

  cryptsetup luksFormat /dev/vdb1  

在這裡插入圖片描述
大寫的YES。
在這裡插入圖片描述
加密成功!

2)解密

cryptsetup open /dev/vdb1 名字                     ##解密為xxx檔案,此檔案存放於/dev/mapper/

在這裡插入圖片描述在這裡插入圖片描述

3)新增檔案系統

mkfs.xfs /dev/mapper/kris                                                             ##新增檔案系統

在這裡插入圖片描述

4)測試

掛載

將其掛載並掛載目錄裡touch檔案。
在這裡插入圖片描述
可以看到檔案顯示

關鎖

關鎖之前先解掛(umount)
在這裡插入圖片描述
關鎖cryptsetup close /dev/mapper/kris
在這裡插入圖片描述
檔案不見了
在這裡插入圖片描述
kris檔案也消失。

開鎖

那麼現在怎麼還能看到建立的檔案呢?沒錯,就是再開鎖。
cryptsetup open /dev/vdb1 名字
在這裡插入圖片描述
出現了!

2.開機自動加密

step1:vim /etc/crypttab ###將檔案關聯
檔案裡編輯:解密後名字 解密裝置檔案 密碼位置
在這裡插入圖片描述

step2:vim /root/kriskey ###記錄密碼
在這裡插入圖片描述

step3:

   chmod 600 /root/kris   ###改變許可權增加安全性

step4:cryptsetup luksAddKey /dev/vdb1 /root/kriskey ###新增加密解密
step5:vim /etc/fstab
在這裡插入圖片描述
檢測:reboot後虛擬機器可啟動,並df掛載成功
在這裡插入圖片描述
錯誤:reboot後,虛擬機器起不了。因為解密後的檔案是一次性的。
改錯:在進系統時,按
刪除r後,改為rw rd.break
在這裡插入圖片描述


按<ctrl+x>切換到單使用者
chroot /sysroot/ 進入真實的根目錄
在這裡插入圖片描述
vim /etc/fatab/
在這裡插入圖片描述
刪除或者註釋自動掛載行 wq退出儲存
命令列輸入兩次exit+回車 重啟。並重新進行開鎖掛載。
3.恢復:

vim /etc/crypttab
vim /etc/fstab
cryptsetup close kris
mkfs.xfs /dev/vdb1 -f
rm -fr /root/kris

在這裡插入圖片描述

二、磁碟配額

為什麼要配額呢?
配合:分配額度,為了約束使用者在磁碟中寫入資料的大小。配額是針對於分割槽的,因為使用者只有在此分割槽裡寫的資料會被限制。

許可權(先掛載,再設定掛載目錄許可權。否則會覆蓋)
chmod 1777 /public/

開啟

mount  -o usrquota /dev/vdb1 /public                 ##開啟usrquota 並掛載vdb1到public下

mount檢視狀態

在這裡插入圖片描述

編輯限額檔案

edquota -u student

編輯內容:限制最大容量為20M(20480k)

 裝置名           已用大小  軟體限制警告  使用者能寫入裝置的最大容量     使用者在裝置的檔案個數   檔案個數軟限   最多可建多少檔案
Filesystem        blocks       soft          hard                       inodes          soft       hard

在這裡插入圖片描述

測試

step1

在這裡插入圖片描述

step2

 dd if=/dev/zero of=file bs=1M count=10
                     ^       ^        ^
                  檔名稱 單位大小   單位個數

在這裡插入圖片描述

當大小為10M和20M時,檔案建立成功。22M的時候因為過大超過配額而報錯。

永久設定

以上操作的掛載依然是臨時的重啟之後不會生效,如果要永久需要修改fstab檔案。

 vim /etc/fstab

/dev/vdb1 /public xfs defaults,usrquota 0 0

三、LVM

1.LVM的介紹

lvm :Logical Volume Manager(邏輯卷管理)是可以使硬碟無限擴容:

PV(物理卷):物理卷在邏輯卷管理系統最底層,可謂整個物理硬碟或實際物理硬碟上的分割槽。

VG(物理卷組):卷組建立在物理捲上,一卷組中至少要包括一些物理卷,卷組建立後可動態添加捲到卷組中,一個邏輯卷管理系統工作中可有多個卷組。

LV:邏輯卷建立在卷組基礎上,卷組中未分配空間可用於建立新的邏輯卷,邏輯卷建立後可動態拓展或縮小空間

PE(物理拓展,lvm最小的儲存單元): 物理分割槽是物理卷中可用於分配的最小儲存單元,物理區域大小在建立卷組時指定,一旦確定不能更改,同一卷組所有物理卷的物理區域大小需一致,新的pv加入vg後,pe的大小自動更改為vg中定義的pe大小。

下面一張圖片表現各個部分關係:
在這裡插入圖片描述

2.安裝LVM

首先確定系統中是否安裝了lvm工具:

 rpm -qa|grep lvm

在這裡插入圖片描述
如果命令結果與上例相似,說明系統已經安裝了LVM管理工具;如果命令沒有輸出則說明沒有安裝LVM管理工具,則需要從網路下載或者從光碟裝LVM rpm工具包。

3.建立LVM分割槽

監控命令

watch -n 1 'pvs;echo ==;vgs;echo ==;lvs;echo ==;df -h /mnt'

pvs |pvdisplay #檢視物理卷
vgs |vgdisplay #檢視物理圈組
lvs |lvdisplay #對邏輯卷裝置進行檢視
在這裡插入圖片描述

建立LVM分割槽

刪除原有的分割槽。新建分割槽並使用t切換格式,接著l列出所有格式。
找到LVM格式。

在這裡插入圖片描述
在此處linux LVM是我們要選擇的,他的代號是8e。在命令列輸入代號轉換格式。
在這裡插入圖片描述
pvcreate /dev/vdb1 #把物理分割槽做成物理卷
在這裡插入圖片描述
vgcreate vg0 /dev/vdb1 #用製作好的/dev/vdb1這個物理卷做成一個物理卷組
在這裡插入圖片描述
lvcreate -L 300M -n lv0 vg0 #在vg0組中建立出lv0裝置 -L 指定裝置大小 -n 指定裝置的名字lv0
在這裡插入圖片描述

mkfs.ext4 /dev/vg0/lv0 ##格式化為ext檔案
在這裡插入圖片描述
mount /dev/vg0/lv0 /mnt/ ##將裝置掛載
在這裡插入圖片描述
看到了mnt size變成了283M 這是因為換算方法不同。一個是1/1024一個是1/1000.

4.拉伸

vg夠用

lvextend -L 1800M /dev/vg0/lv0 ##將裝置拉伸到1800M
在這裡插入圖片描述
lv size變為1000M

vg不夠用

如果要擴大到2000M呢?那我們的vdb1顯然是不夠用的。
fdisk /dev/vdb ##建立新lvm磁碟
在這裡插入圖片描述

partprobe同步分割槽表
pvcreate /dev/vdb2              ###把物理分割槽做成物理卷
vgextend  vg0 /dev/vdb2          ###用製作好的/dev/vdb2這個物理卷做成一個物理卷組

在這裡插入圖片描述
在這裡插入圖片描述
VG變成了2G了。加盤成功。

5.LVM壓縮

umount /mnt/ 先解除安裝
e2fsck -f /dev/vg0/lv0  ##看看佔用了多少(最小能縮小到多少)##必須檢視
為了不使檔案遭到破壞壓縮大小必須大於此值。不檢視無法進行下面步驟。

在這裡插入圖片描述
resize2fs /dev/vg0/lv0 ##縮小檔案系統

必須先縮小檔案系統,保護檔案

在這裡插入圖片描述
mount /dev/vgo/lv0 /mnt/ ##掛載
lvreduce -L 1000M /dev/vg0/lv0 ##將硬體裝置縮小。

在這裡插入圖片描述

刪除pv

在這裡插入圖片描述
在圖中監控可以看到vdb2是完全閒置的,那麼我們就可以將它拿出VG。

vgreduce vg0 /dev/vdb2

在這裡插入圖片描述
想要拿出一個不為空的pv怎麼辦?
先將其內容轉移

vgextend vg0 /dev/vdb2 ##先將vdb2重新拉回
pvmove /dev/vdb1 /dev/vdb2 ##將檔案移動

在這裡插入圖片描述
此時vdb2閒置可以將其拿出VG。

vgreduce vg0 /dev/vdb1      ##分解vdb1和vg

在這裡插入圖片描述

將pv刪除

pvremove vg0 /dev/vdb1      ##刪除vdb1

在這裡插入圖片描述

6.磁碟快照

  touch /mnt/file            ###在原檔案/dev/vg0/lv0掛載/mnt狀態下

在這裡插入圖片描述

  lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0 #製作一個容量為50M的快照lv0backup

在這裡插入圖片描述

  mount /dev/vg0/lv0backup /mnt/ 同步到檔案系統
  ls /mnt 

快照掛載檔案依然在。
在這裡插入圖片描述

刪除快照裡/mnt的所有檔案。

 rm -fr /mnt/*
 ls /mnt 

在這裡插入圖片描述

  umount /mnt                                    ##解除安裝快照
  lvremove /dev/vg0/lv0backup                    ##刪除快照

在這裡插入圖片描述
lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0 ##新建快照
mount /dev/vg0/lv0backup /mnt/ ##掛載新快照
ls /mnt
發現檔案還在。
在這裡插入圖片描述

此實驗證明,快照建立之後磁盤裡內容不會被更改。只是被刪除的快照內容。

7.刪除LVM可擴充套件磁碟分割槽

umount /mnt/

lvremove /dev/vg0/lv0backup #刪除快照

lvremove /dev/vg0/lv0 #刪除lv0

vgremove vg0 #刪除vg0

pvremove /dev/vdb{1…2} #刪除物理分割槽
在這裡插入圖片描述