Linux裸盘挂载与扩容方式

1,967 阅读4分钟

本文正在参加「金石计划 . 瓜分6万现金大奖」

裸盘挂载与扩容

我们之前尝试并且使用了LVM这种方式去挂载,但其实linux的文件系统还有一种裸盘挂载。

我们之前的文章介绍过LVM是如盒挂载的,先用lsblk看有哪些块设备呀,然后看pvs里有哪些物理卷呀,然后创建卷组,创建逻辑卷,然后格式化,然后创建挂载点,然后我们把挂载点和逻辑卷一mount后,df -h就能看到我们的文件系统的使用情况。最后呢就是用blkid看到挂载点的uuid,然后写入/etc/fstab里面让这个挂载永久生效。

裸盘挂载

裸盘挂载呢就简单的很了,我们同样是看lsblk有哪些块设备,对于这些块设备,我们无需创建物理卷呀,创建卷组了,逻辑卷这些操作,只需要先lsblk确定自己需要挂载的磁盘,然后格式化,然后挂载,然后写入/etc/fastab就可。

  1. lsblk 查看目前机器所拥有的块设备。

    image-20221127213534755

    红框里的这四个块设备就是需要我们此次进行裸盘挂载的设备。

  2. 我们对着四块块设备进行一个xfs格式化。

mkfs.xfs -f -i attr=2 -l lazy-count=1,sectsize=4096 -b size=4096 -d sectsize=4096 -L data1 /dev/nvme0n1 
​
mkfs.xfs -f -i attr=2 -l lazy-count=1,sectsize=4096 -b size=4096 -d sectsize=4096 -L data2 /dev/sdc 
​
mkfs.xfs -f -i attr=2 -l lazy-count=1,sectsize=4096 -b size=4096 -d sectsize=4096 -L data3 /dev/sdd
​
mkfs.xfs -f -i attr=2 -l lazy-count=1,sectsize=4096 -b size=4096 -d sectsize=4096 -L app /dev/sdb

下面我们对这个mkfs.xfs磁盘格式化的命令的参数进行一个详解:

参数含义
-bblock_size(块大小) options
-ddata_section_options(数据属性)
-iinode_options 节点选项.(xfs inode 包含二部分:固定部份,可变部份)。 这些选项影响可变部份,包括:目录数据,属性数据,符号连接数据,文件extent列表,文件extent描述性根树。
-llog_section_options (日志属性)(internal/logdev) 选项有: internal [=value] 指定日志段是否作为数据段的一部分。默认为1.
-f强制(force)
  1. 完成格式化之后,就是创建对应的目录去挂载了。

  2. 目录创建完成后,就是使用mount命令去挂载这些块设备和对应的目录了

    mount -o rw,noatime,nodiratime,noikeep,nobarrier,allocsize=100M,attr2,largeio,inode64,swalloc /dev/nvme0n1 /data1
    ​
    mount -o rw,noatime,nodiratime,noikeep,nobarrier,allocsize=100M,attr2,largeio,inode64,swalloc /dev/sdc /data2
    ​
    mount -o rw,noatime,nodiratime,noikeep,nobarrier,allocsize=100M,attr2,largeio,inode64,swalloc /dev/sdd /data3
    ​
    mount -o rw,noatime,nodiratime,noikeep,nobarrier,allocsize=100M,attr2,largeio,inode64,swalloc /dev/sdb /app
    
  1. 完成上面的操作,我们使用blkid口令,查询块设备的uuid,然后写入到/etc/fstab

image-20221127223613880

要提一嘴的是:

  • 这个文件的最后面那个0啊,是告诉操作系统这个文件系统挂载不起来,你就不要挂载了,如果你写为1,就代表告诉操作系统这个文件你必须挂载,如果出现故障,操作系统可能就会反复挂载最终导致系统无法启动,所以我们一般都是设置为0
  • 我们其实是可以使用块设备名字挂载的,但是为什么要使用uuid呢?因为新增一些块设备可能这个名字就不对了,所以我们要使用uuid这个唯一标识符来进行设置。

image-20221127225804938

以上的这些操作就是关于裸盘挂载的操作了。

df -h 关于挂载覆盖的一个点

image-20221127230053087

这里我想谈一个挂载覆盖的事,你比如说我们现在umount掉这个/app。那么我们去访问这/app文件目录肯定呢就是空的,此时我们若是往里写内容,会写到哪里呢?

会写到 / 根的这个挂载目录下,因为所有的文件都是从根创建的,所以你此时写,就是写到根里去了。

如果你此时再把这个/app挂载上,你会发现之前的内容又回来了,但是你刚刚写的内容又没有了,这就叫挂载覆盖。

扩容

之前LVM的时候,我们介绍过,我们呢可以把一个新的块设备扩容进一个卷组/逻辑卷里去,所以对LVM的扩容是很简单的。对于裸盘挂载呢,一般就是有两种扩容方式:

  1. 软链接

    假设我们要针对/opt/db目录进行扩容,为了不影响原有数据,我们需要现将/opt/db目录的数据移动到新磁盘的对应/data/下
    ​
    cd /opt
    mv db /data
    ​
    cd /data
    ln -s db /opt/db
    

    利用上面的软链接,就可以间接达到一个扩容的目的。

  2. 重新部署为LVM形式挂载。