Linux存储管理

admin 2024-9-1 16 9/1

分区表

为了让系统能够识别和管理物理设备上不同的分区,需要在物理设备前加上一些数据用于记录分区的情况,这些数据就是分区表数据,目前分区表有两种主流格式:
1.MBR
为了让系统能够识别和管理物理设备上不同的分区,需要在物理设备前加上一些数据用于记录分区的情况,这些数据就是分区表数据,目前分区表有两种主流格式;
2.GPT
管理硬盘大小不能超过18EB,理论上支持无限分区,但在win10上最多可以分128个分区,如果作为系统盘,必须要设置一个EFI分区,用于存放系统的引导文件

Linux管理分区

Linux管理分区有fdisk,gdisk,parten三种方法;
fdisk与gdisk使用方法类似,parten是实时更新的,使用的时候需要慎重。
#fdisk命令
1.添加一块硬盘
[root@serve1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk
sr0              11:0    1  918M  0 rom
2.fdisk进行磁盘分区
[root@serve1 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xfa96d8c2 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
#常见帮助命令:m 查看全部可用参数
。。。。。。。。
3.加文件系统
[root@serve1 ~]# mkfs.ext4 /dev/sdb1
4.挂载
[root@serve1 ~]# mount /dev/sdb1 /dir1

常用命令

查看设备有哪些盘
lsblk
查看磁盘使用情况
df -h
挂载
mount
解挂载
umount
建立文件系统
m'kfs工具
查看文件数据的占用量
du
du 选项 文件
[root@localhost ~]# du -sh /etc
23M /etc

添加交换分区

swap交换分区时一种通过在硬盘中预先划分一定的空间,然后将把内存中暂不常用的数据临时存放在硬盘中以便腾处物理内存空让更活跃的程序服务来使用的技术。
#设置/dev/sdb2为交换分区
[root@localhost ~]# mkswap /dev/sdb2
#激活交换分区
root@localhost ~]# swapon /dev/sdb2
#删除交换分区 
root@localhost ~]# swapoff /dev/sdb2
#查看
[root@localhost ~]# free -h

磁盘容量配额

quota分为两种
1.软限制
软限制,当达到软件限制时会提示用户,但仍然运行用户在限定的额度内继续使用。
2.硬限制
当达到硬限制时会提示用户且强制终止用户的操作。

xfs_quota

#磁盘容量配额步骤
1.确保磁盘运行配额
[root@localhost ~]# vim /etc/fstab 
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=ff13d896-a59e-430d-8d14-3997d19f5de9 /boot                   xfs     defaults,uquota        0 0
#uquota 表示允许进行磁盘容量配额
/boot 表示配额位置
2.重启
[root@localhost ~]# reboot
3.检查
[root@localhost ~]# mount | grep boot
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)
4.创建测试用户
[root@localhost ~]# useradd test
5.增加对/boot目录的权限
[root@localhost ~]# chmod -Rf o+w /boot
#由于/boot目录对其他用户有w的限制,对/boot 加入w权限
xfs_quota
针对XFS文件系统来管理quota磁盘容量配额服务
xfs_quota 参数 配额 文件系统
参数
-c 用于以参数的形式设置要执行的命令
-x 专家模式
[root@localhost ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 test' /boot
#硬盘使用量的软限制和硬限制分别为3MB和6MB;创建文件数量的软限制和硬限制分别为3个和6个。
bsoft :软限制存储大小
bhard :硬限制存储大小
isoft :软限制文件个数限制
ihard :硬限制文件个数限制
#报告
[root@localhost ~]# xfs_quota -x -c report /boot
User ID          Used       Soft       Hard    Warn/Grace     
---------- -------------------------------------------------- 
root           115516          0          0     00 [--------]
test                0       3072       6144     00 [--------]
#测试
[root@localhost ~]# su - test
[test@localhost ~]$ dd if=/dev/zero of=/boot/tom bs=5M count=1
1+0 records in
1+0 records out
5242880 bytes (5.2 MB) copied, 0.00350676 s, 1.5 GB/s
#if=文件名:输入文件名,默认为标准输入。即指定源文件。
#of=文件名:输出文件名,默认为标准输出。即指定目的文件。
#bs=bytes:同时设置读入/输出的块大小为bytes个字节。
#count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
[test@localhost ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
dd: 写入"/boot/tom" 出错: 超出磁盘限额
记录了1+0 的读入
记录了0+0 的写出
4194304字节(4.2 MB)已复制,0.0103877 秒,404 MB/秒
[test@localhost boot]$ touch file6
touch: 无法创建"file6": 超出磁盘限额

equota

用于编辑用户的quota配额限制
equota 参数 用户
-u 表示对哪个用户进行设置
-g 表示对哪个用户组进行设置
[root@localhost ~]# yum install -y quota
[root@localhost ~]# edquota -u test
Disk quotas for user test (uid 1001):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda1                      4096       3072       8192          1        3        6
[root@localhost ~]# su - test
Last login: Fri Apr 12 06:01:13 EDT 2019 on pts/0
[test@localhost ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
1+0 records in
1+0 records out
8388608 bytes (8.4 MB) copied, 0.019578 s, 428 MB/s
[test@localhost ~]$ dd if=/dev/zero of=/boot/tom bs=10M count=1
dd: 写入"/boot/tom" 出错: 超出磁盘限额
记录了1+0 的读入
记录了0+0 的写出
8388608字节(8.4 MB)已复制,0.0130297 秒,644 MB/秒

软链接与硬链接

#软连接
仅仅包含锁链接文件的路径名,因此能连接目录也能链接文件,也可以跨越文件系统进行链接,但是,当原始文件被删除之后,链接文件也随之失效,类似于windows的快捷方式
ln -s 文件1 文件2 把文件1链接到文件2
参数
-f 强制创建文件或目录的链接
-i 覆盖前先询问
-v 显示创建链接的过程
#硬链接
可以立即为一个指向原始文件的inode的指针,系统不为他分配独立的inode和文件,硬链接与原始文件其实是用一个文件,只是名字不同,我们每次添加一个硬链接,该文件的inode连接数就会加1,只有inode连接数为0时,才算彻底删除这个文件。即使原文件被删除,依然可以通过它的硬连接文件来访问,硬链接不能跨分区对目录文件进行链接。
ln 文件1 文件2
can'shu
-f 强制创建文件或目录的链接
-i 覆盖前先询问
-v 显示创建链接的过程

磁盘阵列

常见的磁盘阵列种类有以下几种,radi0 raid1 raid5 raid10
区别
raid0   要有两块磁盘,每块磁盘存的内容不一样,加快读速度,没有磁盘空间损失
raid1   至少需要两块盘,每块盘的存的内容一样,加快了读取的速度,损失了一半的存储空间
raid5   至少需要三块盘,可以使用奇偶校验恢复数据,读写性能加强,写性能下降,三块盘总计损失了三分之一的存储空间.
raid10  先做raid1再做raid0,至少需要四块盘,同时保证了数据安全并加快读性能。

http://hengy.site/wp-content/uploads/2024/09/e4da3b7fbbce2345d77754.png

http://hengy.site/wp-content/uploads/2024/09/eccbc87e4b5ce2fe283053.png

http://hengy.site/wp-content/uploads/2024/09/c81e728d9d4c2f636f0662.png

http://hengy.site/wp-content/uploads/2024/09/a87ff679a2f3e71d918184.png

部署磁盘整列

1.在机器中加入四块硬盘
使用mdadm模拟
mdadm 参数
-a 检查设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列
[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
#把制作好的PAID磁盘阵列格式化为ext4
[root@localhost ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
2621440 inodes, 10477056 blocks
523852 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2157969408
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
#创建挂载点然后把硬盘设备进行挂载操作
[root@localhost ~]# mkdir /RAID
[root@localhost ~]# mount /dev/md0 /RAID/
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.1G   16G   7% /
devtmpfs                 898M     0  898M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M  9.6M  901M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M  15% /boot
tmpfs                    182M     0  182M   0% /run/user/0
/dev/md0                  40G   49M   38G   1% /RAID
#查看磁盘阵列详细信息
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Mon Apr 15 17:43:04 2019
        Raid Level : raid10
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent
       Update Time : Mon Apr 15 17:44:14 2019
             State : active, resyncing 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0
            Layout : near=2
        Chunk Size : 512K
Consistency Policy : resync
     Resync Status : 66% complete
              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 9b664b1c:ab2b2fb6:6a00adf6:6167ad51
            Events : 15
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync set-A   /dev/sdb
       1       8       32        1      active sync set-B   /dev/sdc
       2       8       48        2      active sync set-A   /dev/sdd
       3       8       64        3      active sync set-B   /dev/sde

LVM逻辑卷

http://hengy.site/wp-content/uploads/2024/09/image-20240705210149682.png

#LVM
LVM是逻辑卷管理器,逻辑卷管理器是Linu系统中对于硬盘分区进行管理的一种机制,为了解决创建分区之后不易修改分区大小的缺陷,LVM技术是在硬盘和文件系统之间加一个逻辑层,它提供一个抽象的卷组,可以把多块硬盘和卷组进行合并,这样我们就不需要关注物理硬盘黑色版的底层架构和布局,就可以实现对硬盘分区的调整。

物理卷处于LVM的最底层,可以将其理解为物理硬盘,硬盘分区和磁盘阵列,卷组建立在物理卷之上,一个卷组可以包含多个物理卷,逻辑卷是用卷组中空闲的资源建立的,

LVM逻辑卷管理器思路
先创建物理卷,然后把物理卷整合成卷组,再把卷组中的空闲资源建立逻辑卷,然后挂载使用逻辑卷。

部署逻辑卷

#步骤
1 第1步:让新添加的两块硬盘设备支持LVM技术
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
2.第2步:把两块硬盘设备加入到storage卷组中,然后查看卷组的状态
[root@localhost ~]# vgcreate storage /dev/sdb /dev/sdc
  Volume group "storage" successfully created
[root@localhost ~]# vgdisplay
3.第3步:切割出一个约为150MB的逻辑卷设备。
[root@localhost ~]# lvcreate -n vo -l 37 storage
  Logical volume "vo" created.
[root@localhost ~]# lvdisplay 
4.第4步:把生成好的逻辑卷进行格式化,然后挂载使用。
[root@localhost ~]# mkfs.ext4
/dev/storage/vo
mke2fs 1.42.9 (28-Dec-2013)

扩容逻辑卷

#解除挂载
[root@localhost ~]# umount /vo
#扩容
[root@localhost ~]# lvextend -L 290M /dev/storage/vo 
#检查硬盘完整性,并重置硬盘容量
[root@localhost ~]# e2fsck -f /dev/storage/vo
#重新挂载硬盘设备并查看挂载状态
[root@localhost ~]# mount /dev/storage/vo /vo
[root@localhost ~]# df -h

缩小逻辑卷

#解除挂载,检查文件系统完整性
[root@localhost ~]# umount /vo
[root@localhost ~]# e2fsck -f /dev/storage/vo
#缩小逻辑卷
root@localhost ~]# resize2fs /dev/storage/vo 120M
#重新挂载硬盘设备并查看挂载状态
[root@localhost ~]# mount /dev/storage/vo /vo
[root@localhost ~]# df -h

 

 

 

- THE END -

admin

9月01日22:19

最后修改:2024年9月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论