### Linux下的磁盘阵列、磁盘配额与Swap虚拟内存 #### 一、Linux磁盘阵列(RAID) 磁盘阵列(Redundant Array of Independent Disks,简称RAID)是一种将多个物理硬盘驱动器组合成一个逻辑单元的技术,用以提高存储性能或数据冗余度。在Linux系统中,我们可以通过`mdadm`工具来管理和配置RAID。 **配置过程:** 1. **创建RAID设备** - 确保磁盘分区的格式为fd(用于标识RAID设备)。例如,对于`/dev/sda6, /dev/sda7, /dev/sda8, /dev/sda9`这些分区: ```shell # partprobe # mdadm --create /dev/md0 -l 5 -n 3 /dev/sda[6789] ``` - 上述命令中`-l 5`表示创建RAID 5阵列,`-n 3`表示使用3个磁盘进行初始化,而`/dev/sda[6789]`则是参与阵列构建的磁盘列表。 - 使用`partprobe`更新内核中的分区表。 2. **格式化并挂载RAID设备** - 创建完成后,需要格式化新创建的RAID设备,并将其添加到`/etc/fstab`中以便开机自动挂载。 ```shell # mkfs.ext3 /dev/md0 # echo '/dev/md0 /mnt/redhat ext3 defaults 0 0' >> /etc/fstab # mount -a ``` 3. **动态管理RAID设备** - 动态管理包括向RAID添加或移除磁盘,以及调整RAID大小等操作。 ```shell # mdadm --detail /dev/md0 # 查看RAID详情 # mdadm --manage /dev/md0 --fail /dev/sda8 # 标记某块磁盘为故障状态 # mdadm --manage /dev/md0 --remove /dev/sda8 # 移除故障磁盘 # mkfs.ext3 /dev/sda8 # 重新格式化移除的磁盘 # mdadm --manage /dev/md0 --add /dev/sda8 # 将磁盘重新加入RAID # mdadm --stop /dev/md0 # 停止RAID设备 # mdadm --grow /dev/md0 --add /dev/sda12 # 扩展RAID设备 # mdadm --grow /dev/md0 --raid-devices=4 /dev/sda12 --backup-file=/mnt/alex.bu # 扩展RAID设备,同时指定备份文件 # mdadm --create /dev/md0 -l 10 -n 4 /dev/sda[] # 创建新的RAID 10设备 ``` #### 二、磁盘配额(Quota) 磁盘配额是限制用户或组对文件系统的使用量,以避免某些用户占用过多的存储空间,影响其他用户的正常使用。 **配置过程:** 1. **启用磁盘配额** - 启用磁盘配额前,需要在`/etc/fstab`文件中为相应文件系统添加`usrquota`选项。 ```shell # vim /etc/fstab /dev/sda5 /mnt/max ext3 defaults,usrquota 0 0 # mount -a # quotacheck -cu /dev/sda5 # quotaon /mnt/max ``` 2. **设置用户配额** - 通过`setquota`命令来为用户设置具体的配额值。 ```shell # setquota tang 0 50 700 0 /dev/sda5 # chmod 757 /mnt/max ``` 3. **测试配额效果** - 使用普通用户`tang`登录,尝试创建超过配额限制的文件。 ```shell $ cd /mnt/max $ dd if=/dev/zero of=fail.50 bs=50k count=1 $ dd if=/dev/zero of=fail.20 bs=20k count=1 ``` #### 三、Swap虚拟内存 Swap虚拟内存是一种机制,它将一部分硬盘空间作为内存使用,以缓解物理内存不足的问题。 **配置过程:** 1. **创建Swap分区** - 可以通过创建Swap分区或者Swap文件的方式实现。 ```shell # fdisk /dev/sda # 创建一个新的分区,类型设为82(swap) # mkswap /dev/sda10 # echo '/dev/sda10 swap swap defaults 0 0' >> /etc/fstab # swapon /dev/sda10 # swapon -s ``` 2. **创建Swap文件** - 还可以使用Swap文件,这种方式更为灵活。 ```shell $ dd if=/dev/zero of=/mnt/fail.500 bs=500M count=1 # mkswap /mnt/fail.500 # echo '/mnt/fail.500 swap swap defaults 0 0' >> /etc/fstab # swapon /mnt/fail.500 # swapon -s ``` 以上就是在Linux系统中关于磁盘阵列、磁盘配额和Swap虚拟内存的基本配置方法。通过这些技术,可以有效地提高系统的稳定性和效率,合理分配系统资源,确保系统能够高效地运行。
#vim /etc/fstab (将需要配额的磁盘写进fstab)
/dev/sda5 /mnt/max ext3 defaults,usrquota 0 0
#mount -a
#mount -o remount /dev/sda5 (重挂载)
#quotacheck -cum /dev/sda5 (检测配额)
#quotaon /mnt/max (开启配额)
#adduser tang (新建用户tang)
#dequota tang (设置配额值)
tang 0 50 70 0 0 0
#chmod 757 /mnt/max (修改max的权限为wr可读写)
#su tang (进入tang用户)
$cd mnt/max (进入/mnt/max文件夹)
$dd if=/dev/zero of=fail.50 bs=50k count=1 (当前目录下新建一个50K被0填满的文件fail.50)
系统报警
$dd if=/dev/zero of=fail.20 bs=20k count=1
系统提示数据载入失败(存满配额后其余数据丢失)
2.磁盘阵列
#新建4个物理分区sda[6789] 改格式为fd
#partprobe
#mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sda[6789] (建立阵列)
阵列名 grid5 使用3个磁盘 备用1个磁盘
#partprobe
#mkfs.ext3 /dev/md0
#vim /etc/fstab
/dev/md0 /mnt/redhat ext3 defaults 0 0
#mount -a
#mdadm -D /dev/md0 (查看阵列情况)
#mdadm /dev/md0 -f /dev/sda8 (手动破坏磁盘sda8)
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助