1. 程式人生 > 實用技巧 >第二十三章 磁碟掛載的方式,Swap,RAID,LVM

第二十三章 磁碟掛載的方式,Swap,RAID,LVM

掛載的方式


mount 掛載 重啟將會失效;我們稱為臨時生效。

語法: 命令 + 選項 + 裝置 + 掛點

選項:

-a #重新載入配置檔案,沒有掛載的進行掛載

-o #指定掛載的引數

[root@lxy ~]# mount -o ro /dev/sdb1 /mbr #只讀

-t #指定的掛載的檔案系統

[root@lxy ~]# mount -t xfs /dev/sdb1 /mbr

永久掛載

[root@lxy ~]# ll /etc/fstab
-rw-r--r--. 1 root root 647 Dec 31 20:17 /etc/fstab

[root@lxy ~]# tail -2 /etc/fstab
/dev/sdb1 /mbr xfs defaults 0 0
/dev/sdc1 /gpt xfs defaults 0 0

#使用UUID進行掛載
[root@lxy ~]# blkid #獲得所有裝置的UUID資訊,檔案系統資訊
/dev/sda1: UUID="91c070cc-7125-477b-92b5-155470c09a7a" TYPE="xfs"
/dev/sda2: UUID="12be2b3e-907f-4ba2-9637-0e5815027b48" TYPE="swap"
/dev/sda3: UUID="5a242423-9404-4c8e-97b2-c97ac1770d97" TYPE="xfs"
/dev/sdb1: UUID="92179b63-c1a9-4dc4-a292-e3a26afbdf73" TYPE="xfs"
/dev/sdc1: UUID="8347e3a8-2ac9-416f-8214-918b072b6b53" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="e291ad9f-3777-4de1-a0c6-52d6d64e6b5c"
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
[root@lxy ~]# umount /mbr
[root@lxy ~]# mount UUID="92179b63-c1a9-4dc4-a292-e3a26afbdf73" /mbr
[root@lxy ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 1.6G 46G 4% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdc1 3.0T 5.0G 3.0T 1% /gpt
/dev/sdb1 10G 33M 10G 1% /mbr
[root@lxy ~]# tail -2 /etc/fstab
UUID=92179b63-c1a9-4dc4-a292-e3a26afbdf73 /mbr xfs defaults 0 0
/dev/sdc1 /gpt xfs defaults 0 0
[root@lxy ~]# mount -a
[root@lxy ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 1.6G 46G 4% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdc1 3.0T 5.0G 3.0T 1% /gpt
/dev/sdb1 10G 33M 10G 1% /mbr

[root@lxy ~]# tail -2 /etc/fstab
/dev/sdb1 /mbr xfs defaults 0 0
/dev/sdc1 /gpt xfs defaults 0 0


第一列: 掛載的裝置 device 裝置地址,UUID,網路地址

第二列: 掛載點 目錄,裝置的一個入口

第三列: 檔案系統的型別

第四列: 掛載的引數 defaults

aysnc/sync 非同步/同步 預設async

user/nouser 普通使用者是否允許使用這個命令掛載,預設 nouser

suid/nosuid 表示是否允許存在id的屬性 suid

exec/noexec 是否執行目錄中的檔案由執行許可權, 預設 exec

auto/noauto 是否允許mount -a這個選項自動掛載配置檔案中的列表 auto

rw/ro 讀寫 只讀 預設讀寫

defaults 預設

_netdev 當主機掛載時出現報錯時跳過這個報錯,不影響系統的啟動

第五列: 是否使用dump進行磁碟備份

0 表示不備份
1 表示每天都備份
2 表示不定期的備份

第六列: 是否使用fsck檢查磁碟

0 不檢查
1 檢查,檢查的順序,檢查的級別,優先給根分割槽
2 檢查


umount 解除安裝

-l #強制解除安裝


[root@lxy mbr]# umount /mbr
umount: /mbr: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))

[root@lxy mbr]# umount -l /mbr #強制解除安裝
[root@lxy mbr]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 1.6G 46G 4% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdc1 3.0T 5.0G 3.0T 1% /gpt


[root@lxy mbr]# umount /mbr
umount: /mbr: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@lxy mbr]# cd #切換到其他目錄進行解除安裝
[root@lxy ~]# umount /mbr/

Swap

虛擬記憶體 

當實體記憶體不足時,系統會將swap臨時充當記憶體。將硬碟空間中的一部分空間釋放出來,以供當前執行的程式使用。
#當實體記憶體不足時會隨機kill掉佔用記憶體的程序,從而產生oom,臨時使用swap可以解決。

OOM #報錯
Out of memory #記憶體的不足報錯

當系統記憶體不足時,大量佔用swap
解決方法:
加實體記憶體
殺掉佔用記憶體多的程序
重啟對應占用過多記憶體的程序
臨時新增swap


臨時新增swap
1. 新增一個1G的磁碟空間

[root@lxy ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47.5G 0 part /
sdb 8:16 0 100G 0 disk
├─sdb1 8:17 0 10G 0 part /mbr
├─sdb2 8:18 0 1G 0 part
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 10G 0 part
sdc 8:32 0 3T 0 disk
└─sdc1 8:33 0 3T 0 part /gpt
sr0 11:0 1 4.3G 0 rom


2. 格式化,將其建立swap檔案系統

[root@lxy ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=af8d8d88-d22f-4d53-8917-c86965d8281e

3. 將其應用到swap上面

[root@lxy ~]# free -m
total used free shared buff/cache available
Mem: 972 123 746 7 102 707
Swap: 2047 0 2047
[root@lxy ~]# swapon /dev/sdb2
[root@lxy ~]# free -m
total used free shared buff/cache available
Mem: 972 123 745 7 102 706
Swap: 3071 0 3071

4. 永久新增

寫入到/etc/fstab檔案中
echo "/swapfile2 swap swap defaults 0 0" >> /etc/fstab
swapon -a #使所有swap檔案生效

#顯示當前哪些裝置屬於swap

[root@lxy ~]# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 2097148 0 -2
/dev/sdb2 partition 1048572 0 -3


#怎麼取消swap的新增


[root@lxy ~]# swapoff /dev/sdb2
[root@lxy ~]# free -m
total used free shared buff/cache available
Mem: 972 125 744 7 102 705
Swap: 2047 0 2047

[root@lxy ~]# swapoff -a #禁用swap

[root@lxy ~]# swapon -a #啟用
[root@lxy ~]# free -m
total used free shared buff/cache available
Mem: 972 123 746 7 102 707
Swap: 2047 0 2047


#生成一個大檔案,不是資料檔案,讓這個大檔案臨時充當swap


1. 生成一個1G的檔案
[root@lxy ~]# dd if=/dev/zero of=/root/swap.log bs=100M count=10
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB) copied, 9.16512 s, 114 MB/s
[root@lxy ~]# ll -h
total 1001M
-rw-------. 1 root root 1.4K Nov 26 20:28 anaconda-ks.cfg
-rw-r--r--. 1 root root 1000M Jan 2 19:00 swap.log

2. 讓這個檔案變成swap檔案

[root@lxy ~]# file swap.log
swap.log: data
[root@lxy ~]# mkswap -f swap.log
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=e83276bf-8b8b-4093-8acd-4da9db2a362e
[root@lxy ~]# file swap.log
swap.log: Linux/i386 swap file (new style), version 1 (4K pages), size 255999 pages, no label, UUID=e83276bf-8b8b-4093-8acd-4da9db2a362e

3. 修改swap檔案的許可權為600

[root@lxy ~]# chmod 600 swap.log

4. 新增swap空間

[root@lxy ~]# swapon /root/swap.log

[root@lxy ~]# free -m
total used free shared buff/cache available
Mem: 972 124 159 7 688 664
Swap: 3047 0 3047


事後總結:

永久解決問題。

業務需要 新增配置,新增節點

[root@lxy ~]# partprobe
#通知核心,磁碟分割槽表發生變化。

RAID

軟RAID  和  硬RAID 

板載RAID卡 ,獨立的RAID

RAID的好處

1. 獲得更多的容量

2. 獲得更多的冗餘(資料備份)

3. 獲得更高的效能

做RAID是在什麼時候做RAID

裝系統前

RAID級別

盤數 容量 效能 安全 適用場景

RAID0 條帶卷 至少2塊(支援1塊) 所有硬碟之和 讀寫最快 0 只要求速度,不要求安全

RAID1 映象卷 只能兩塊 一半 讀一般,寫很慢 50% 只要求安全,不要求速度

RAID5 校驗卷 至少3塊 浪費1塊 讀稍快,寫稍慢 只能壞一塊 對安全和速度要求都不高

RAID10 映象陣列條帶卷 至少4塊 一半 讀寫很快 50% 對安全和速度要求都很高

RAID01 陣列條帶映象卷

從效能對比
從好到差

RAID0==》RAID10==》RAID5==》RAID1

從安全性對比

RAID1==》RAID10==》RAID5==》RAID0

從成本進行對比

RAID0==》RAID5==》RAID1==》RAID10

企業的伺服器選擇什麼級別

根據業務的需求,進行選擇RAID級別

熱備

備用盤

三塊是否能做RAID1

能做,一個做熱備

熱插拔

在不影響系統執行的情況下,新增或者移除磁碟

LVM


LVM logical volume manager 邏輯卷組管理

動態的擴充套件分割槽的大小

底層RAID分割槽+LVM邏輯分層,底層壞掉,整個LVM都壞了

名詞
物理卷 PV physical volume 磁碟或者單個分割槽 麵粉

卷組 VG volume group 將多個磁碟或者分割槽組成一個整體 多個PV組成 麵糰

邏輯卷 LV logical volume 將卷組進行分割成一個邏輯卷,最大支援65536個PE 饅頭

最大邏輯卷是256G大小

基本單元 PE physical extend 最小的資料塊 預設是4MB

01. 什麼是LVM?

LVM是Logical Volume Manager (邏輯卷管理)的簡寫,它是Linux環境下對磁碟分割槽進行管理的一種機制。又譯為邏輯卷宗管理器、邏輯扇區管理器、邏輯磁碟管理器,是Linux核心所提供的邏輯卷管理(Logical volume management)功能。它在硬碟的分割槽之上,又建立一個邏輯層,以方便系統管理硬碟分割槽系統。
最先由IBM開發,在AIX系統上實現,OS/2 作業系統與 HP-UX也支援這個功能。在1998年,Heinz Mauelshagen 根據在 HP-UX 上的邏輯卷管理器,寫作出第一個 Linux 版本的邏輯卷管理器。

02. LVM解決了什麼問題

當我們剛開始安裝Linux作業系統是遇到的一個常見的難以決定的問題就是如何正確地評估各分割槽大小,以分配合適的硬碟空間。
普通的磁碟分割槽好之後就無法改變其大小,而遇到出現某個分割槽空間耗盡時,解決的方法可以是符號連結,或者調整分割槽大小的工具,但這只是暫時解決方法,沒有從根本上解決問題。
隨著Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,使用者可以在無需停機的請款下可以方便的調整各個分割槽大小。

03. LVM架構圖



04. LVM基本概念

物理卷(PV):(physical volume),把常規的磁碟裝置通過pvcreate命令對其進行初始化,形成了物理卷。其實就是硬碟或分割槽。(麵粉)

卷組(VG):(volume group),把多個物理卷組成一個邏輯的整體,這樣卷組的大小就是多個硬碟之和。或者理解就是由一個或多個PV組成的整體。(麵糰)

邏輯卷(LV):(logical volume),從卷組中劃分需要的空間大小出來。使用者僅需對其格式化然後即可掛載使用。從VG中切割出的空間用於建立檔案系統。(切成饅頭)

基本單元(PE):(physical extend),分配的邏輯大小的最小單元,預設為4MB的基本塊。(假設分配100MB邏輯空間,則需要建立25個PE)
  1. LVM架構圖