Linux文件服务1

RAID5 阵列 与 LVM(Ubuntu 24.04 LTS)

1,创建RAID5阵列

添加三个10 GB的SATA磁盘,并使用 fdisk -llsblk 查看磁盘信息
使用mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd 创建RAID5阵列。(需要mdadm,apt install mdadm)
image
使用cat /proc/mdstatmdadm --detail /dev/md0监控RAID状态。

创建和管理LVM(apt install lvm2)

点击查看代码
root@user-VMware-Virtual-Platform:~# pvcreate /dev/md0
##使用pvcreate命令将RAID5阵列设备/dev/md0初始化为物理卷
    Physical volume "/dev/md0" successfully created.
    ##pvs查询结果
  root@user-VMware-Virtual-Platform:~# pvs
    PV         VG Fmt  Attr PSize  PFree 
    /dev/md0      lvm2 ---  19.98g 19.98g
  root@user-VMware-Virtual-Platform:~# vgcreate vg01 /dev/md0
  ##使用vgcreate命令创建名为vg01的卷组
    Volume group "vg01" successfully created
  root@user-VMware-Virtual-Platform:~# vgs
  ##用vgs查询结果
    VG   #PV #LV #SN Attr   VSize  VFree 
    vg01   1   0   0 wz--n- 19.98g 19.98g
  root@user-VMware-Virtual-Platform:~# lvcreate -L 5G -n lv01 vg01 
    Logical volume "lv01" created.
  root@user-VMware-Virtual-Platform:~# lvcreate -l 100%free -n lv02 vg01
    Logical volume "lv02" created.
    ##使用lvcreate命令创建两个逻辑卷:lv01大小为5GB,lv02大小为卷组中的所有剩余空间
  root@user-VMware-Virtual-Platform:~# lvs
    LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
    lv01 vg01 -wi-a-----  5.00g                                                    
    lv02 vg01 -wi-a----- 14.98g                                                    
  root@user-VMware-Virtual-Platform:~# mkfs.ext4 /dev/vg01/lv01
  ##使用mkfs.ext4命令对每个逻辑卷进行ext4文件系统格式化
  root@user-VMware-Virtual-Platform:~# mkfs.ext4 /dev/vg01/lv02
  root@user-VMware-Virtual-Platform:~# mkdir /mnt/lv01
root@user-VMware-Virtual-Platform:~# mkdir /mnt/lv02
root@user-VMware-Virtual-Platform:~# mount /dev/vg01/lv01 /mnt/lv01
root@user-VMware-Virtual-Platform:~# mount /dev/vg01/lv02 /mnt/lv02
root@user-VMware-Virtual-Platform:~# lsblk 

拓展

进行磁盘添加操作

正常的RAID5 阵列
image
不正常的RAID5 阵列
image

1. 检查当前RAID状态

  • 确认阵列运行状态:使用cat /proc/mdstatmdadm --detail /dev/md0命令来检查RAID5阵列的状态,确保它正常工作并且识别出所有三个磁盘。

    cat /proc/mdstat
    

    或者更详细的输出:

    mdadm --detail /dev/md0
    

2. 模拟磁盘损坏

  • 手工标记磁盘为故障:使用mdadm命令将磁盘/dev/sdb标记为故障,模拟磁盘损坏。

    mdadm /dev/md0 --fail /dev/sdb
    
  • 添加新磁盘到系统并加入阵列:向系统中添加一个新的同接口、同容量的磁盘(假设新磁盘为/dev/sde),然后将其添加到RAID5阵列中。

    mdadm /dev/md0 --add /dev/sde
    

3. 监控重建进度

  • 查看RAID阵列重建进度:使用cat /proc/mdstat命令持续监控RAID阵列的重建进度,直到重建完成。您也可以通过watch命令自动刷新查看进度。

    watch -n 1 cat /proc/mdstat
    

    注意: 重建过程可能需要一些时间,具体取决于磁盘大小和系统性能。

4. 移除故障磁盘

  • 删除坏的磁盘:一旦新的磁盘成功加入并完成了重建,可以安全地从RAID5阵列中移除被标记为故障的磁盘/dev/sdb

    mdadm /dev/md0 --remove /dev/sdb
    

5.扩展物理卷 (PV)

一旦RAID5阵列的重建完成,扩展物理卷以匹配底层设备的新尺寸。

  • 检查当前物理卷的状态

    pvs
    
  • 调整物理卷大小

    sudo pvresize /dev/md0
    

6.扩展卷组 (VG)

由于我们已经在创建RAID时将/dev/md0添加到了卷组中,因此不需要再添加到卷组。

7.扩展逻辑卷 (LV)

扩展逻辑卷以使用卷组中的额外空间。

  • 如果想增加特定大小的空间给逻辑卷:
    sudo lvextend -L +5G /dev/vg01/lv01
    
  • 或者使用所有剩余空间:
    sudo lvextend -l +100%FREE /dev/vg01/lv01
    

8.调整文件系统大小

  • 对于ext文件系统(如ext4),使用resize2fs命令:

    sudo resize2fs /dev/vg01/lv01
    
  • 对于XFS文件系统,使用xfs_growfs命令:

    sudo xfs_growfs /mnt/lv01
    

lvm的增删

  • pvresize:调整物理卷大小

    pvresize /dev/md0
    
  • pvcreate:初始化物理设备 /dev/sdb 为物理卷(Physical Volume),使其可以被LVM管理。

    pvcreate /dev/sdb
    
  • pvs:显示所有物理卷的概要信息,包括大小、是否属于某个卷组等。

    pvs
    
  • pvdisplay:提供关于指定物理卷的详细信息。

    pvdisplay /dev/sdb
    
  • pvremove:从物理设备 /dev/sdb 上移除LVM元数据,将设备恢复到普通状态。

    pvremove /dev/sdb
    

卷组(VG)操作

  • vgcreate:创建一个新的卷组 vg01,并添加物理卷 /dev/sdb

    vgcreate vg01 /dev/sdb
    
  • vgextend:向现有的卷组 vg01 中添加新的物理卷 /dev/sdb(假设已经初始化了另一个磁盘作为物理卷)。

    vgextend vg01 /dev/newdevice
    
  • vgreduce:从卷组 vg01 中移除物理卷 /dev/sdb

    vgreduce vg01 /dev/sdb
    
  • vgremove:删除卷组 vg01 及其所有的逻辑卷。请注意,这将删除卷组中的所有数据。

    vgremove vg01
    
  • vgs:列出所有卷组的简要信息。

    vgs
    
  • vgdisplay:显示有关卷组 vg01 的详细信息。

    vgdisplay vg01
    

逻辑卷(LV)操作

  • lvcreate:在卷组 vg01 内创建新的逻辑卷 lv01,例如指定5GB大小。

    lvcreate -L 5G -n lv01 vg01
    
  • lvextend:扩展现有逻辑卷 lv01 的大小。如果需要同时调整文件系统的大小,还需要执行相应的命令(例如 resize2fs 对于ext4文件系统)。

    lvextend -L +5G /dev/vg01/lv01
    

    或者使用百分比表示可用空间的比例:

    lvextend -l +100%FREE /dev/vg01/lv01
    
  • lvreduce:减少现有逻辑卷 lv01 的大小。同样,在调整逻辑卷大小之前应该先缩小文件系统。

    lvreduce -L -5G /dev/vg01/lv01
    
  • lvremove:删除逻辑卷 lv01。请注意,这将删除逻辑卷上的所有数据。

    lvremove /dev/vg01/lv01
    
  • lvs:列出所有逻辑卷的简要信息。

    lvs
    
  • lvdisplay:显示有关逻辑卷 lv01 的详细信息。

    lvdisplay /dev/vg01/lv01
    

NFS

1.安装 NFS 服务器

sudo apt update
sudo apt install nfs-kernel-server
2. 创建共享目录
sudo mkdir /mnt/lv01
确保该目录具有适当的权限设置,以便客户端能够访问。

  1. 编辑 /etc/exports 文件

/mnt/lv01 *(rw,sync,no_subtree_check)
* 表示允许所有客户端访问。
rw 表示读写权限。
sync 表示同步写入(即数据写入磁盘后才返回成功)。
no_subtree_check 表示不检查子树,提高性能。

4.重启NFS服务来应用更改:
systemctl restart nfs-kernel-server
5. 检查导出的共享目录
root@user-VMware-Virtual-Platform:~# sudo exportfs -v
/mnt/lv01 <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

  1. 在win客户端测试 NFS 共享
    控制面板 --> 程序 --> 打开或关闭windows功能 --> 勾选NFS服务
    cmd:mount 192.168.72.133:/mnt/lv01 z:

    image
posted @ 2025-01-10 17:09  以后不要没饭吃啊  阅读(73)  评论(0)    收藏  举报