• 10-2 分区管理和RAID


    分区管理和RAID

    处理交换文件和分区

    • swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的
      RAM 保存系统处理的数据时会将数据写入 swap 分区
    • 当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过多swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存泄露
    • 推荐系统 swap 空间
    系统中RAM量 推荐的swap空间 允许休眠的建议swap空间大小
    低于2GB RAM量的倍数 RAM容量的三倍
    2GB-8GB 等于RAM量 RAM量的倍数
    8GB-64GB 4GB到RAM容量的0.5倍 RAM容量的1.5倍
    超过64GB 独立负载(至少4GB) 不建议使用休眠功能

    挂载交换分区

    • 基本设置包括:
      • 创建交换分区或者文件
      • 使用mkswap写入特殊签名
      • 在/etc/fstab文件中添加适当的条目
      • 使用swapon -a 激活交换空间
    • 启用:swapon
      • swapon [OPTION]... [DEVICE]
      • -a:激活所有的交换分区
      • -p PRIORITY:指定优先级
      • /etc/fstab 在第4列中:pri=value
    • 禁用:swapoff [OPTION]... [DEVICE]

    SWAP的优先级

    • 可以指定swap分区0到32767的优先级,值越大优先级越高
    • 如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一
    • 先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)
    • 优化性能:分布存放,高性能磁盘存放

    移动介质

    • 挂载意味着使外来的文件系统看起来如同是主目录树的一部分
    • 访问前,介质必须被挂载
    • 摘除时,介质必须被卸载
    • 按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软
      盘、USB等等)
    • 挂载点通常在/media 或/mnt下

    使用光盘:

    • 在图形环境下自动启动挂载/run/media//
    • 否则就必须被手工挂载
      • mount /dev/cdrom /mnt/
    • 操作光盘:
      • eject 弹出光盘
      • eject -t 弹入光盘
    • 创建ISO文件
      • cp /dev/cdrom /root/centos.iso
      • mkisofs -r -o /root/etc.iso /etc
    • 刻录光盘
      • wodim –v –eject centos.iso

    挂载USB介质:

    • 查看USB设备是否识别
      • lsusb
    • 被内核探测为SCSI设备
      • /dev/sdaX、/dev/sdbX或类似的设备文件
    • 在图形环境中自动挂载
      • 图标在[计算机]窗口中创建
      • 挂载在/run/media//
    • 手动挂载
      • mount /dev/sdb1 /mnt

    常见工具

    • 文件系统空间占用等信息的查看工具
      • df [OPTION]... [FILE]...
        • -H 以10为单位
        • -T 文件系统类型
        • -h human-readable
        • -i inodes instead of blocks
        • -P 以Posix兼容的格式输出
    • 查看某目录总体空间占用状态
      • du [OPTION]... DIR
        • -h human-readable
        • -s summary
        • --max-depth=# 指定最大目录层级

    工具dd

    dd 命令:convert and copy a file
    用法:

    • dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
    • if=file 从所命名文件读取而不是从标准输入
    • of=file 写到所命名的文件而不是到标准输出
    • ibs=size 一次读size个byte
    • obs=size 一次写size个byte
    • bs=size block size, 指定块大小(既是是ibs也是obs)
    • cbs=size 一次转化size个byte
    • skip=blocks 从开头忽略blocks个ibs大小的块
    • seek=blocks 从开头忽略blocks个obs大小的块
    • count=n 复制n个bs
    • conv=conversion[,conversion...] 用指定的参数转换文件
    • 转换参数:
      • ascii 转换 EBCDIC 为 ASCII
      • ebcdic 转换 ASCII 为 EBCDIC
      • lcase 把大写字符转换为小写字符
      • ucase 把小写字符转换为大写字符
      • nocreat 不创建输出文件
      • noerror 出错时不停止
      • notrunc 不截短输出文件
      • sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
      • fdatasync 写完成前,物理写入输出文件
    • 备份MBR
      • dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
    • 破坏MBR中的bootloader
      • dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
    • 有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下
      • dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
    • 举例:
      • 备份:
        • dd if=/dev/sdx of=/dev/sdy
          • 将本地的/dev/sdx整盘备份到/dev/sdy
        • dd if=/dev/sdx of=/path/to/image
          • 将/dev/sdx全盘数据备份到指定路径的image文件
        • dd if=/dev/sdx | gzip >/path/to/image.gz
          • 备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
      • 恢复:
        • dd if=/path/to/image of=/dev/sdx
          • 将备份文件恢复到指定盘
        • gzip -dc /path/to/image.gz | dd of=/dev/sdx
          • 将压缩的备份文件恢复到指定盘
        • 拷贝内存资料到硬盘
          • dd if=/dev/mem of=/root/mem.bin bs=1024
          • 将内存里的数据拷贝到root目录下的mem.bin文件
        • 从光盘拷贝iso镜像
          • dd if=/dev/cdrom of=/root/cdrom.iso
          • 拷贝光盘数据到root文件夹下,并保存为cdrom.iso文件
        • 销毁磁盘数据
          • dd if=/dev/urandom of=/dev/sda1
          • 利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行

    RAID

    RAID:Redundant Arrays of Inexpensive(Independent) Disks

    • 1988年由加利福尼亚大学伯克利分校(University of CaliforniaBerkeley) “A Case for Redundant Arrays of Inexpensive Disks”
    • 多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供

    特点:

    • 提高IO能力
      • 磁盘并行读写
    • 提高耐用性
      • 磁盘冗余来实现
    • 级别:多块磁盘组织在一起的工作方式有所不同
    • RAID实现的方式
      • 外接式磁盘阵列:通过扩展卡提供适配能力
      • 内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
      • 软件RAID:通过OS实现

    RAID级别

    • RAID-0:条带卷,strip
    • RAID-1:镜像卷,mirror
    • RAID-2
    • ..
    • RAID-5
    • RAID-6
    • RAID-10
    • RAID-01

    RAID0:
    将数据分别存在两块或多块硬盘上,读写时同时读写两块,速度提升,无容错能力

    • 读、写性能提升
    • 可用空间:N*min(S1,S2,...)
    • 无容错能力
    • 最少磁盘数:2, 2+

    RAID0

    RAID1:
    将数据分别写一份在两块或多块硬盘上,保证数据的安全

    • 读性能提升、写性能略有下降
    • 可用空间:1*min(S1,S2,...)
    • 有冗余能力
    • 最少磁盘数:2, 2N

    RAID1

    RAID4:
    多块数据盘异或运算值存于专用校验盘,由于校验盘很容易损坏,所以发展了RAID5,不适用RAID4了

    RAID5:
    将数据分开存储,并且留一块做校验盘,几块硬盘轮流充当校验盘

    • 读、写性能提升
    • 可用空间:(N-1)*min(S1,S2,...)
    • 有容错能力:允许最多1块磁盘损坏
    • 最少磁盘数:3, 3+

    RAID5

    RAID6:
    在RAID5的基础上多加了一块校验盘,可以保证在两块硬盘损坏的情况下继续使用

    • 读、写性能提升
    • 可用空间:(N-2)*min(S1,S2,...)
    • 有容错能力:允许最多2块磁盘损坏
    • 最少磁盘数:4, 4+

    RAID6

    RAID10:
    先组RAID1,然后将两个RAID1组成RAID0

    • 读、写性能提升
    • 可用空间:N*min(S1,S2,...)/2
    • 有容错能力:每组镜像最多只能坏一块
    • 最少磁盘数:4, 4+

    RAID10

    RAID01:
    先祖RAID0,然后将两个RAID0组成RAID1

    RAID01

    相比之下,RAID10比RAID01容错率高一点

    RAID50:
    多块磁盘先实现RAID5,再组合成RAID0

    RAID50

    JBOD:将多个磁盘合并成一个大的连续空间

  • 相关阅读:
    你不是不行只是对自己要求太低
    数学的思维方式
    python文档生成工具:pydoc、sphinx;django如何使用sphinx?
    python抽象类的实现方式:abc模块
    python的重试库tenacity用法以及类似库retry、requests实现
    dict扩展munch,支持yaml文件
    python读取yaml配置文件
    博客园的打赏功能、打赏插件
    junit5了解一下
    sulime代理设置、插件管理
  • 原文地址:https://www.cnblogs.com/kjalbert/p/11710018.html
Copyright © 2020-2023  润新知