Linux - 系統 - 存儲管理

吳宏東 - 記於2018年06月22日 - 博客 https://segmentfault.com/u/wu...node

Linux 存儲管理

磁盤分區

硬盤分類

機械硬盤:主要由盤片、磁頭、轉軸等機械部件組成;
固態硬盤:主要由固態電子存儲芯片陣列製成,無機械部件;linux

硬盤接口

SCSI:應用於商業級關鍵數據大容量存儲;
SAS:支持SATA磁盤,性價比最高,業界公承認以取代SCSI;
SATA:應用於非關鍵數據的大容量存儲;docker

磁盤分區

查看當前系統有多少個硬盤以及各有多少個分區。segmentfault

[root@master1 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdb1

以上輸出結果,可知系統有2個硬盤分別是sda和sdb,硬盤sda有3個分區,sda一、sda二、sda3;
使用fdisk分區工具進行磁盤分區centos

[root@master1 ~]# fdisk /dev/sda
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.


Command (m for help): p

Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 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: 0x000cdd4e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448    17133567     8258560   82  Linux swap / Solaris
/dev/sda3        17133568   209715199    96290816   83  Linux

以上輸出結果,可知硬盤空間有107.4 GB,分區sda1的文件系統類型是Linux,接着能夠輸入如下各類參數代碼:
[n] 建立一個新的分區,p爲主分區,e爲擴展分區,分區號和起始扇區按默認回車;
[t] 更改分區類型,選擇分區號,輸入類型代碼,Linux=83,Linux LVM=8e,Linux swap/solaris=82;
[d] 刪除分區;
[p] 不保存,退出;
[w] 保存退出;
若是更新了分區表,須要通知系統內核從新讀取分區表。bash

partprobe /dev/sda;

邏輯卷

基本概念

[PV] 物理卷,能夠是磁盤或分區,處於最底層;
[VG] 卷組,一個或多個物理卷組成;
[LV] 邏輯卷,卷組切出來的空間,能夠伸縮;
[PE] 物理區域,建立物理卷時指定,默認爲4M;
[LE] 邏輯區域,與PE一致;app

管理

# 查看全部物理卷、卷組、邏輯卷列表
pvs;
vgs;
lvs;
# 建立2個物理卷
pvcreate /dev/sdb2 /dev/dsb3;
# 建立一個名爲data的卷組,添加2個物理卷
vgcreate data /dev/sdb2 /dev/dsb3;
# 在data卷組建立名爲docker大小爲100G的邏輯卷
lvcreate -L 100G -n docker data;
# 查看卷信息
pvdisplay /dev/sdb2;
vgdisplay data;
lvdisplay /dev/data/docker;
# 卷組縮減和擴展
vgreduce data /dev/dsb3;
vgextend data /dev/dsb3;
# 擴展、縮減邏輯卷 /dev/vg名/lv名
lvextend -L +50G /dev/data/docker;
lvreduce -L -50G /dev/data/docker;

文件系統

命令 mkfs

# 在第二塊硬盤第一個分區建立xfs文件系統
mkfs -t xfs /dev/sdb1;
mkfs.xfs /dev/sdb1;
# 在卷組data上的docker邏輯卷建立xfs文件系統
mkfs -t xfs /dev/data/docker;

命令 mount

在磁盤分區或邏輯捲上建立文件系統後,就能夠使用mount掛載邏輯捲到系統的目錄;ide

# 查看系統已經掛載的文件系統
mount;
# 將邏輯卷/dev/data/docker掛載到系統目錄/opt/docker
mmount /dev/data/docker /opt/docker;
# 編輯/etc/fstab文件,增長掛載點,以便系統啓動後可以自動掛載
vi /etc/fstab;
# 使掛載生效
mount -a;

命令 umount

卸載文件系統,格式:umount <設備名或掛載點>工具

# 查看哪些進程在使用掛載點
fuser -cu /opt/docker;
# 殺死這些進程
fuser -ck /opt/docker;
# 卸載
umount /dev/data/docker;
umount /opt/docker;

磁盤限額

方式一:限制用戶或組的inode(文件數);
方式二:限制用戶或組的磁盤空間;
Linux默認使用的文件系統是xfs,因此使用xfsprogs的xfs_quota軟件包提供設置;code

命令 xfs_quota

# 啓動文件系統的quota掛載選項
vi /etc/fstab;
# 在defaults後追加uquota,gquota,用逗號隔開,如
# /dev/mapper/centos-root / xfs defaults,uquota,gquota 0 0
# 從新掛載文件系統,不能使用-o remount,由於xfs系統必須在第一次掛載時才啓用quota
umount /;
mount /;
# 給用戶wuhd設置容量軟限制50M,應限制60M,文件數軟限制2000,硬限制2500
xfs_quota -x -c 'limit -u bsoft=50M bhard=60M isoft=2000 ihard=2500 wuhd' /;
# 查看容量限額設置
xfs_quota -c 'quota -uv wuhd' /;
# 查看文件數限額設置
xfs_quota -c 'quota -i -uv wuhd' /;
相關文章
相關標籤/搜索