Linux存储的基本管理
一、设备识别
设备接入系统后都是以文件的形式存在
设备文件名称:
SATA/SAS/USB /dev/sda,/dev/sdb ##s= SATA, d=DISK a=第几快
IDE /dev/hd0,/dev/hd1 ##h= hard
VIRTIO-BLOCK /dev/vda,/dev/vdb ##v=virtio
M2(SSD) /dev/nvme0,/dev/nvme1 ##nvme=m2
SD/MMC/EMMC(卡) /dev/mmcblk0,/dev/mmcblk1 ##mmcblk=mmc卡
光驱 /dev/cdrom,/dev/sr0,/dev/sr1
设备查看
fdisk -l ##查看磁盘分区情况
lsblk ##设备使用情况
blkid ##设备管理方式及设备id
df ##查看正在被系统挂载的设备
cat /proc/partitions ##查看系统识别设备
二、设备挂载
在系统中有设备id的设备是可以被系统使用的
挂载命令:
mount -o 挂载参数 device 挂载点
umount 设备|挂载点
mount ##查看挂载信息
mount -o rw /dev/vda1 /westos
mount -o remount,ro /westos ##转换挂载参数由读写变为只读
在卸载时当出现设备正忙:
fuser -kvm 设备|挂载点 #-k 结束进程, -v 现实详细信息 -m 显示进程
“注意:以上设备挂载都是临时挂载”
设备永久挂载
vim /etc/fstab ##设备挂载策略文件
设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
/dev/sr0 /westos iso9660 defaults 0 0
此文件在编写完成后不会马上生效
mount -a ##重新读取/etc/fstab文件
此文件内容编写错误会导致系统启动失败
按照提示在操作界面输入超级用户密码
注释错误行
重启系统即可
三、设备中文件的查找
find
-name
-user
-group
-type f d s b l
-perm 222 /222 -222
-exec
-maxdepth 1
-mindepth 1
-cmin 1 -1 +1
-size +|-| 1M
-o
-a
-not
touch westosfile{1..5}
chown westos.westos westosfile1
chown root.westos westosfile3
mkdir westosdir
ls
ls -l
find /mnt -name westosfile1
find /mnt -user westos
find /mnt -group westos
find /mnt -user westos -group westos
find /mnt -user westos -a -group westos
find /mnt -user westos -o -group westos
find /mnt -group westos
find /mnt -group westos -exec chgrp root {} \;
ls -l
find /mnt -user westos
find /mnt -not -user westos
find /etc/ -name passwd
find /etc/ -maxdepth 1 -name passwd
find /etc/ -maxdepth 2 -name passwd
ls
ll
chmod 000 *
ll
chmod 440 westosfile1 #给文件权限
chmod 404 westosfile2
chmod 044 westosfile3
chmod 344 westosfile4
chmod 444 westosfile5
ll
find /mnt -perm 444
find /mnt -perm /444
find /mnt -perm -444
四、分区
分区方式:
位数 | 分区表大小 | 支付分区个数 | 支持单个分区大小 | |
---|---|---|---|---|
legacy | (MBR) 32 | 64byte | 主分区4个、所有分区16个 | 2.2TB |
UEFI | (GPT) 64 | 128byte | 理论上无限制、windows 128 | 8ZiB |
MBR分区方式:
主分区
主分区表记录分区的信息并可以直接使用的分区
扩展分区
主分区表记录的分区,不可直接使用,只是逻辑分区容器
逻辑分区
扩展分区之上划分的分区叫做逻辑分区
分区方法
ot@rhel8_node1 mnt]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x4018d2a4.
Command (m for help): m ##获得帮助
d ##删除
l ##列出所有分区类型
n ##新建
p ##显示分区表
t ##更改分区类型
w ##保存更改
q ##退出
g ##设定分区方式为GPT
o ##设定分区方式为mbr
Command (m for help): n #新建
Partition type
p primary (0 primary, 0 extended, 4 free) ##主分区
e extended (container for logical partitions) ##扩展分区
Select (default p): p ##建立主分区
Partition number (1-4, default 1):1 ##分区表位置
First sector (2048-20971519, default 2048): ##分区起始位置推荐使用默认
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +100M ##分区结束位置
Command (m for help):wq ##退出保存,如果直接q表示退出不保存
udevadm settle ##同步分区表
mkfs.xfs -K /dev/sdb1 ##格式化设备为xfs文件系统(相当与在/dev/sda1上安装设备管理软件)
##-K 不丢弃空数据块
mount /dev/sdb1 /mnt/westos ##mount命令挂在为临时挂在,如果需要永久挂在需要编写/etc/fstab
parted
parted /dev/vdb mklabel msdos
parted /dev/vdb mkpart primary 1 100
parted /dev/vdb rm 2
方法分区
fdisk /dev/vdb #分/dev/vdb
fdisk /dev/vdb
udevadm settle #同步化分区
cat /proc/partitions
blkid #查看管理设备方式及设备id
mkfs.xfs -K /dev/vdb1 #格式化文件系统
fdisk /dev/vdb
blkid #查看管理设备方式及设备id
dd if=/dev/zero of=/dev/vdb bs=1M count=1 #格式化分区磁盘,以无限零字节覆盖
fdisk -l
fdisk /dev/vdb
fdisk -l
cat /proc/partitions
parted /dev/vdb rm 1 #删除磁盘分区/dev/vdb1
fdisk -l
parted /dev/vdb mklabel msdos #建立主分区
parted /dev/vdb mkpart primary 1 100 #大小给1-100M
fdisk -l #查看分区
常用文件系统对比
文件系统 | FAT16 | FAT32 | NTFS | EXT3 | EXT4 | XFS |
---|---|---|---|---|---|---|
最大卷 | 2GB | 4GB | 256TB | 32TB | 1EB | 16EB |
最大单个文件 | 4GB | 8TB | 16TB | 2TB | 16TB | 8EB |
最大文件个数 | 65536 | 4177920 | 4294967295 | 32000个子目录 | 无限子目录 | |
代表系统 | DOS Win95 | Win98 | Win2000以后 | RHEL5 | RHEL6 | RHEL7~ |
#man 5 fs
设备删除
dd if=/dev/zero of=/dev/sdb bs=1M count=1
mbr分区方式转换成GPT
parted /dev/sda
(parted) mklabel
New disk label type? gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost.
Do you want to continue?
Yes/No? yes
(parted) quit
在RHEL8中可以直接使用fdisk /dev/sdb
g ##g表示把/dev/sdb设备的分区方式调整为GPT
五、swap分区
作用:
程序在运行时所有数据是在RAM
当RAM使用量超过了限额
为了使系统更加稳定
我们在硬盘上划分一部分空间来作内存缓冲区swap
当内存使用超过限额,内核会把内存中闲置的数据存放到swap中
当程序需要swap分区中的数据时内核将swap分区中的数据在交还给内存进程处理
swap分区大小建议:
内存大小 | swap分区建议大小 | 当允许HIBERNATE |
---|---|---|
2GiB以下 | 内存两倍 | 内存3倍 |
2-8GiB | 等于物理内存 | 物理内存2倍 |
8-64GiB | 4GiB | 1.5倍物理内存 |
64GiB以上 | 4GiB | HIBERNATE不开 |
swap管理
swapon -s ##查看swap分区信息
创建swap分区
创建分区并设定分区的类型为Linuxswap
mkswap /dev/sda1 ##格式化设备位swap格式
swapon /dev/sda1 -p 0-32767 ## -p表示指定swap的优先级
以上操作都位临时操作
如果永久添加swap分区
vim /etc/fstab
/dev/sda1 swap swap pri=4 0 0
swapon -a
删除swap
vim /etc/fstab
/dev/sda1 swap swap pri=4 0 0 ##删除此行
swapoff /dev/sda1
#六、磁盘配额
作用:
设定用户能写入指定设备的最大额度
设定方法:
mount /dev/sda1 /pub/ -o usrquota ##挂载设备并激活配额参数
quotaon -uv /dev/sda1 ##激活配额
edquota -u lee ##设定用户lee配额
Disk quotas for user lee (uid 1001):
设备 用户已经创建数据 软限 硬限 户已经创文件个数 软限 硬限
Filesystem blocks soft hard inodes soft hard
/dev/sda1 20480 0 20480 1 0 0
永久开启配额
vim /etc/fstab
/dev/sda1 /pub xfs defaults,usrquota 0 0
测试习题:
1.在虚拟机中添加一块新的硬盘,大小为10G
2.在新硬盘中建立分区并挂在到/westosdir目录中,分区大小为500M
3.设定/westosdir目录中所有用户可以自由新建文件但不能删除不属于自己的文件
4.设定westos用户和lee用户能写入/westosdir目录中的最大数据不能超过10M
5.在系统中添加swap分区,大小为1G,优先级为1
6.以上要求在重启主机后仍然生效