Linux磁盘管理

Linux磁盘管理

1、本地存储设备的识别

fdisk   -l   ##列出真实存在的设备(包括系统无法识别的设备)

cat   /proc/partitions   ##系统识别的设备

blkid    ##系统可以使用的设备

df   ##系统正在挂载的设备

df   -h   ##显示挂载设备的总容量,已使用容量,未使用容量(1kb=1024b)

df   -H   ##显示挂载设备的总容量,已使用容量,未使用容量(1kb=1000b)

Filesystem   Size   Used   Avail   Use%   Mounted on
   1           2      3      4      5        6
1:设备名称
2:设备总容量
3:已经使用的空间
4:剩余的空间
5:磁盘的使用率
6:磁盘挂载的目录

设备文件的位置为‘/dev'下

/dev/sda1或/dev/hda1或/dev/vda1...

文件名的前两位为设备的类型,并口硬盘是hd,串口硬盘或SCSI硬盘为sd,虚拟机的硬盘是vd

文件名的第三位是该类型设备的顺序号,主盘hda,从盘hdb,abc...表示

文件名的第四位是该硬盘的分区号1-4,5和之后的是逻辑分区

2、设备的挂载和卸载

mount   设备文件的路径   挂载目录

mount   -o   ro   设备文件的路径   挂载目录   ##以只读挂载

mount   -o   remount,rw   设备文件的路径   挂载目录   ##以读写重挂载

umount   挂载目录或umount   设备文件的路径都可以卸载

当卸载时出现设备被占用的情况

fuser   -vm   挂载目录   ##查看在使用设备的情况

fuser   -kvm   挂载目录   ##查看并结束使用

lsof   挂载目录   ##查看占用挂载目录的进程

查看进程是否重要

kill   -9   PID   ##结束进程

3、磁盘管理

1)新建磁盘

2)磁盘分区

1、磁盘0磁道1扇区的512字节内容(主引导扇区)

512=446+64+2

446:mbr(主引导记录)

64:mpt(主分区表)

2:磁盘的有效性标示

fdisk   /dev/vda   ##开始对磁盘vda进行分区

wq   ##保存并退出   partprobe   ##同步分区表

查看磁盘的分区情况,vdc有一个分区1

dd   if=/dev/vdc   of=/mnt/mbr   bs=512   count=1

拷贝vdc磁盘主引导扇区的分区表到/mnt/mbr(新建文件)

hexdump   -C   /mnt/mbr

用16进制显示文件内容(两位一字节)

"20"是标志位,可以看到磁盘完成4个主分区后,分区表中每个分区项占16个字节

3)磁盘挂载

开机自动挂载设备:vim    /etc/fstab

设备名称     挂载点   文件系统类型     挂载参数     是否备份   是否检测
/dev/vda1   /mnt       xfs          defaults       0         0  

mount -a  ##测试设备是否被挂载
fstab比rc.local快,内核启动时,这个文件就会被优先读取,设备就会被挂载

4)磁盘配额

mount   -o   usrquota   /dev/vda1   /pub  ##挂载时添加配额参数(默认没有)

edquota   -u   用户名   ##打开配额文件

soft:软限度,超过此限度警告

hard:硬限度,是最大额度

单位均为KB

在指定用户下:dd   if=/dev/zero   of=/pub/student   bs=1M   count=30   ##尝试拷贝30M硬盘信息

30M>30000KB 超过了给用户的配额(硬限度)

5)磁盘加密

cryptsetup   lucksFormat   /dev/vdd1   ##为指定磁盘的指定分区加密(未建立文件系统)

Are   you   sure?输入为大写YES

cryptsetup   open   /dev/vdd1   liu   ##虚拟一个分区liu

ll   /dev/mapper/liu

可以看到虚拟的liu链接着原有分区

mkfs.xfs   /dev/mapper/liu   ##建立文件系统

mount   /dev/mapper/liu   /mnt   ##正常挂载

umount   /mnt   ##正常卸载

cryptsetup   close   liu   ##相当于启动加密

这时/dev/mapper看不到加密的分区和虚拟的liu,挂载原始设备/dev/vdd1也是被拒绝的

cryptsetup   open   /dev/vdd1   liu   ##相当于解开对分区的加密

这时分区就可见并且可以挂载

mount   /dev/mapper/liu   /mnt

去掉加密可以强制格式化分区:mkfs.xfs  -f   /dev/vdd1

6)磁盘阵列(RAID)

fdisk   /dev/vdd   ##为一块新磁盘分区

分为三个区 再为分区设定标签:fd

三个分区都为RAID

watch   -n   1    cat   /proc/mdstat  

mdadm   -C   /dev/md0   -a   yes   -l   1   -n   2   -x   1   /dev/vdd{1..3}

-C:建立磁盘阵列

-a   yes:如果/dev/md0不存在则自动创建

-l   ride:工作方式

-x:备用几块

mkfs.xfs   /dev/md0   ##建立.xfs文件系统

mount   /dev/md0   /mnt   ##挂载

模拟一块硬盘出错:mdadm   -f   /dev/md0   /dev/vdd3

vdd2会替换vdd3和vdd1数据同步

mdadm   -D   /dev/md0   ##查看信息

mdadm   -r   /dev/md0   /dev/vdd3   ##删除vdd3

mdadm   -a   /dev/md0   /dev/vdd3   ##恢复vdd3

mdadm   -S   /dev/md0   ##结束RAID服务

7)LVM动态管理卷

LVM(逻辑卷);将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态地对分区扩大和缩小

pv   ##物理卷;pvcreate命令处理过的物理分区
vg   ##物理组卷
LVM ##直接使用的设备,可以增大所见并保持原有的数据不变
pe  ##物理扩展 lvm设备的最小存储单元,lvm是pe的整数倍

LVM的建立:

fdisk   /dev/vdc   ##设定分区为LVM(8e)

watch   -n   1    'pvs;vgs;lvs;df   h'  ##监控

pvcreate   /dev/vdc1   ##创建物理卷

vgcreate   vg0   /dev/vdc1  ##创建组

lvcreate   -L   20M   -n   lv0   vg0  ##创建一个20M大小的逻辑卷

mkfs.xfs    /dev/vg0/lv0  ##建立一个文件系统

mount   /dev/vg0/lv0   /mnt  ##挂载

vg的扩容和减少

pvcreate   /dev/vdc2  ##先创建物理卷

vgextend   vg0   /dev/vdc2   ##用vdc2扩容vg0物理卷组

vgreduce   vg0   /dev/vdc2  ##从物理卷组vg0移除vdc2

LVM的拉伸

LVM支持热拉伸:lvextend   -L   50M   /dev/vg0/lv0   ##拉伸原有的lv0为50M

只拉伸LVM是不会改变实际容量的还需要相应地拉伸文件系统

xfs_growfs   /dev/vg0/lv0   ##拉伸lv0的文件系统

vg中容量不足时,再为其创建一个物理卷:pvcreate   /dev/vdd2

vgextend   vg0   /dev/vdd2   ##扩容物理卷组

lvextend   -L   500M   /dev/vg0/lv0   ##物理卷组容量充足,可拉伸更多lv0容量

xfs_growfs   /dev/vg0/lv0   ##拉伸lv0的文件系统

LVM的缩减

LVM不支持热缩减且仅针对ext格式(xfs文件系统不支持缩减)

umount   /mnt 

mkfs.ext*   /dev/vg0/lv0   ##格式化为ext*

e2fsck   -f   /dev/vg0/lv0  ##缩减文件系统

resize2fs   /dev/vg0/lv0   20M   ##缩减为20M

lvreduce   -L   20M   /dev/vg0/lv0   ##缩减lv

mount   /dev/vg0/lv0   /mnt

*缩减时注意先缩减文件系统后缩减设备,否则会毁坏文件

vg物理卷的数据迁移

pvmove   /dev/vdc1   /dev/vdc2   ##将vdc1的数据移动到vdd2中

vgreduce   vg0   /dev/vdc1   ##将vdc1从vg0物理卷组移除

pvremove   /dev/vdc1   ##彻底删除vdd1下的物理卷

LVM快照

lvcreate   -L   50M   -n   lv0-backup   -s   /dev/vg0/lv0   ##创建lv0大小为50M快照

mount   /dev/vg0/lv0-backup   /mnt

实际容量不是102M而是建立的快照的大小

dd   if=/dev/zero   of=/mnt/file   bs=1M   count=60   ##当拷贝数据大小超过快照大小时,会破坏设备

再次挂载快照会报错

删除快照和lvm并还原硬盘

umount   /mnt   ##卸载

lvremove   /dev/vg0/lv0-backup   ##删除快照

lvremove   /dev/vg0/lv0   ##删除lvm

vgremove   vg0   ##删除vg

pvremove   /dev/vdc2   ##删除pv

再fdisk   /dev/vdc删除分区

4、文件系统

文件系统定义:操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统;对系统来说,文件系统就是对文件存储空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统

文件系统组成:和文件管理有关的软件 被管理的文件以及实施文件管理所需要的数据结构

安装文件系统:mkfs.xfs    /dev/vda1   ##为vda的第一个分区安装xfs的文件系统

**网络文件系统(nfs):网络文件系统是Linux系统和网络存储文件管理常用的文件系统,允许多个客户端访问共享文件,可用于提供对二进制文件的共享访问,也允许同一工作组的用户从不同的客户端访问其文件

服务器端:

mkdir   /shareclient   ##创建共享文件目录

mount   /dev/vda1   /shareclient   ##将vda磁盘的第一个分区挂载在共享目录下(分区已有文件系统)

yum   install   nfs-utils   -y   ##安装nfs

systemctl   start   nfs-server   ##启动nfs

sysytemctl   stop   firewalld   ##关闭防火墙

sysytemctl   disable   firewalld   ##关闭防火墙自启动

vim   /etc/exports   ##指定客户端的访问方式

*(sync)不设定权限

exportfs   -rv   ##刷新并显示

客户端:

mount   服务器端ip地址:/shareclient   挂载目录

sysytemctl   stop   firewalld   ##关闭防火墙

sysytemctl   disable   firewalld   ##关闭防火墙自启动

客户端成功挂载共享目录

**nfs自动挂载

客户端:

yum   install   autofs   -y   ##安装autofs

system   start   autofs

ls   -ld   /net   ##安装nfs后自动创建的目录

cd   /net/服务器端ip地址/shareclient   ##这时已自动挂载

自动挂载有时长限制(300s)-->会自动卸载

修改卸载时间:

vim   /etc/sysconfig/autofs

TIMEOUT改为指定时长

systemctl   restart   autofs

退出共享目录后,自动卸载时长过后,就会自动卸载(一直df显示会刷新时长)

**修改nfs默认挂载目录

nfs默认挂载在/net/服务器端ip地址/docs

现在更改默认挂载目录为/opt/nfs/share(可自由设定)

客户端:

vim   /etc/auto.master

添加挂载点的上层目录

8行   挂载点上层目录   /etc/文件名.nfs   ##任意的文件名 .nfs固定 必须在/etc下

vim   /etc/文件名.nfs

挂载点的最后一级目录   -ro(只读)   服务器端ip地址:/共享目录

systemctl   restart   autofs 

ls   /opt   ##可以看到自动建立的nfs目录

systemctl   stop   autofs nfs目录就会自动删除

cd   /opt/nfs/share   ##这时已自动挂载

设定的自动卸载时长依然生效

**修改共享目录的权限

客户端:

cd   /opt/nfs/share   ##进入到挂载目录

共享目录里的文件不能自由删除和更改

服务器端:

vim   /etc/exports   将*(sync)更改为*(rw,sync)-->有读写权限

chmod   777   /shareclient(共享目录)-->共享目录改为满权限

exportfs   -rv   ##刷新

客户端:

vim   /etc/auto.nfs

systemctl   restart   autofs

现在客户端在挂载目录下(共享目录)可以读写

5、swap分区的管理

建立swap分区

1)设定分区的标签为swap(82)

2)创建swap分区:mkswap    /dev/vda2

3)让系统识别swap分区:swapon    -a    /dev/vda2

4)查看系统中的swap分区:swapon    -s

5)设置开机自动加载swap分区

vim   /etc/fstab

删除swap分区

1)删除开机自动加载(vim   /etc/fstab)

2)将分区格式改回其他格式:mkfs.xfs   -f   /dev/vda2   ##格式化就是再建立一次文件系统

3)删除swap分区:swapoff    /dev/vda2

4)查看是否删除:swapon   -s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值