Linux存储的基本管理
1,设备识别
设备接入系统后都是以文件的形式存在
设备文件名称 | ||
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卡rtt |
光驱 | /dev/cdrom,/dev/sr0,/dev/sr1 |
设备查看
fdisk -l | 查看磁盘分区情况 |
lsblk | 设备使用情况 |
blkid | 设备管理方式及设备id |
df | 查看正在被系统挂载的设备 |
cat /proc/partitions | 查看系统识别设备 |
2.设备挂载
在系统中有设备id的设备是可以被系统使用的
挂载命令: mount -o (挂载参数) device (挂载点)
umount 设备|挂载点
mount 查看挂载信息
mount -o rw /dev/vda1 /mnt
mount -o remount,ro /mnt 转换挂载参数由读写变为只读
在卸载时当出现设备正忙: fuser -kvm 设备|挂载点 -k 结束进程, -v 现实详细信息 -m 显示进程
“注意:以上设备挂载都是临时挂载”
设备永久挂载 :vim /etc/fstab 设备挂载策略文件
设备 | 挂载点 | 文件系统类型 | 挂载参数 | 是否备份 | 是否检测 |
/dev/sr0 | /mnt | xfs | defaults | 0 | 0 |
此文件在编写完成后不会马上生效: mount -a 重新读取/etc/fstab文件
此文件内容编写错误会导致系统启动失败 按照提示在操作界面输入超级用户密码 注释或者删除错误行 重启系统即可
3.设备中文件的查找
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
find /etc/ -name passwd ##查找/etc/下名字是passwd的文件
find /etc/ -maxdepth 1 -name passwd ##查找/etc/最大限度是一级文件叫passwd的文件
find /etc/ -maxdepth 2 -name passwd ##查找/etc/最大限度是二级文件叫passwd的文件
find /etc/ -maxdepth 2 -mindepth 2 -name passwd ##查找最大和最小都是二级的文件,即只能是二级
find /mnt/ -user westos ##查找用户是westos的文件
find /mnt/ -not -user westos ##查找除了用户westos之外的文件
find /mnt/ -user westos -o -user lee ##查找用户是lee或者westos的文件(-o代表或者)
find /mnt/ -user westos -a -group lee ##查找用户是westos且用户组是lee的文件
find /mnt/ -type d ##查找/mnt/下d类型文件
find /mnt/ -perm 111 ##查找/mnt下权限是111的文件
find /mnt/ -perm -111 ##查找/mnt下文件权限u位有1,g位有1,o位有1的文件
find /mnt/ -perm /111 ##查找/mnt下权限中u或g或o含1的文件
find /mnt/ -perm /111 -type f -exec chmod ugo-x {} ; #查找/mnt/下权限符合/111的f型文件并修改其权限为o-w {} 表示find命令查找结果,是为了转译“;”
实验步骤一
实验步骤二
4.分区
分区方式:位数 分区表大小 支持分区个数 支持单个分区大小
MBR分区方式:
1)主分区:主分区表记录分区的信息并可以直接使用的分区
2)扩展分区: 主分区表记录的分区,不可直接使用,只是逻辑分区容器
3)逻辑分区: 扩展分区之上划分的分区叫做逻辑分区
分区方法
Command (m for help): m ##获得帮助 d ##删除 l ##列出所有分区类型 n ##新建 p ##显示分区表 t ##更改分区类型 w ##保存更改 q ##退出 g ##设定分区方式为GPT o ##设定分区方式为mbr
udevadm settle ##同步分区
mkfs.xfs -K /dev/sdb1 ##格式化设备为xfs文件系统(相当与在/dev/sda1上安装设备管理软件) -K 不丢弃空数据块(新建分区后不格式化,不能挂载)
mount /dev/sdb1 /mnt/ mount命令挂载为临时挂在,如果需要永久挂在需要编写/etc/fstab
parted
parted /dev/sdb mklabel msdos
parted /dev/sdb mkpart primary 1 100
parted /dev/sdb rm
常用文件系统对比
文件系统 | 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~ |
设备删除
dd if=/dev/zero of=/dev/sdb bs=1M count=1 ##还原一块硬盘未被处理的模式
mbr分区方式转换成gpt
parted /dev/sda GNU Parted 3.2 Using /dev/sdb (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
5.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
1. 新建分区
2. 将分区类型更改为Linuxswap
mkswap /dev/sda1 ##格式化设备位swap格式
swapon /dev/sda1 -p 0-32767 ## -p表示指定swap的优先级
以上操作都位临时操作 如果永久添加swap分区
vim /etc/fstab /dev/sda1 swap defaults 0 0 swapon -a
删除swap
swapoff /dev/sda1
永久删除
vim /etc/fstab
/dev/sda1 swap swap defaults 0 0 ##删除此行
6.磁盘配额
作用: 设定用户能写入指定设备的最大额度
设定方法: mount /dev/sda1 /pub/ -o usrquota ##挂载设备并激活配额参数
quotaon -uv /dev/sda1 ##激活配额
edquota -uwestos ##设定用户westos配额
Disk quotas for user lee (uid 1001):
设备 用户已经创建数据 软限 硬限 户已经创文件个数 软限 硬限
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 20480 0 20480 1 0 0
永久开启配额
vim /etc/fstab
/dev/sdb2 /pub xfs defaults,usrquota 0 0
测试:
su – westos
dd if=/dev/zero of=/pub/leefile bs=1M count=22 ##截取数据失败只能写入20M数据
关闭配额:
quotaoff -uv /dev/sda1
vim /etc/fstab ##去掉配额参数usrquota