Linux - 系统 - 存储管理

吴宏东 – 记于2018年06月22日 – 博客 https://segmentfault.com/u/wu…

Linux 存储管理

磁盘分区

硬盘分类

机械硬盘:主要由盘片、磁头、转轴等机械部件组成;
固态硬盘:主要由固态电子存储芯片阵列制成,无机械部件;

硬盘接口

SCSI:应用于商业级关键数据大容量存储;
SAS:支持SATA磁盘,性价比最高,业界公认可以取代SCSI;
SATA:应用于非关键数据的大容量存储;

磁盘分区

查看当前系统有多少个硬盘以及各有多少个分区。

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

以上输出结果,可知系统有2个硬盘分别是sda和sdb,硬盘sda有3个分区,sda1、sda2、sda3;
使用fdisk分区工具进行磁盘分区

[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] 保存退出;
如果更新了分区表,需要通知系统内核重新读取分区表。

partprobe /dev/sda;

逻辑卷

基本概念

[PV] 物理卷,可以是磁盘或分区,处于最底层;
[VG] 卷组,一个或多个物理卷组成;
[LV] 逻辑卷,卷组切出来的空间,可以伸缩;
[PE] 物理区域,创建物理卷时指定,默认为4M;
[LE] 逻辑区域,与PE一致;

管理

# 查看所有物理卷、卷组、逻辑卷列表
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挂载逻辑卷到系统的目录;

# 查看系统已经挂载的文件系统
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软件包提供设置;

命令 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' /;
    原文作者:吴宏东
    原文地址: https://segmentfault.com/a/1190000015371242
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞