分区管理和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+

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

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

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

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

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

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

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

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

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

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

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

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

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

10-2 分区管理和RAID的更多相关文章

  1. 手动创建分区以及软硬raid的问题

    本文章旨在介绍安装centos7时手动分区问题,及其所对应的软硬raid问题.在新建centos7系统时,需要手动分区时,提供给我们三个选项: 在上图中,默认选项为“Standard Partitio ...

  2. 【Linux】LVM逻辑卷管理和RAID

    LVM概述: 是对磁盘分区进行管理的一种机制 是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不 够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空 ...

  3. 运维笔记之yum,rpm,挂载,磁盘管理和raid详解

    yum 与 rpm centos6,7 主要有rpm和yum这两种包管理软件,两种包的管理各有用处,其中最主要区别是:  yum使用简单但需要联网,yum会去网上的yum包源去获取所需要的软件包.而r ...

  4. Linux下逻辑卷LVM的管理和RAID磁盘阵列

    目录 LVM 一:LVM的创建 二:LVM的拉伸 三:LVM的缩小 四:LVM的删除 五:RAID磁盘阵列的添加 LVM LVM(Logical Volume Manager) 逻辑卷管理器,可以动态 ...

  5. 回收Windows 10恢复分区之后的磁盘空间

    我电脑上安装了Windows 10和Linux双系统,现在将Linux删除之后,准备将其磁盘空间并入到Windows 10的C盘中,但是发现C盘跟Linux空间之间还隔了一个Windows的恢复分区, ...

  6. 部署RAID 10

    额外添加4块硬盘,用于搭建RAID 10 检查linux的磁盘 [root@local-pyyu ~]# fdisk -l |grep '/dev/sd[a-z]' 磁盘 /dev/sda:21.5 ...

  7. SSD阵列卡方案优化:考虑使用RAID 50替代RAID 10

    最近一直在研究RAID 50,因为牺牲一半的容量的RAID 10代价实在太大了,而且它提供的可用性也并不是百分百的,我们首先来看下RAID 10的可用性分析: 以同等容量的不同RAID方式作为案例分析 ...

  8. RAID磁盘阵列学习笔记

    RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列.简单地解释,就是将N台硬盘通过RAID Controller(分Hardware ...

  9. RAID与磁盘管理之——综合应用

    为了实现磁盘的管理和RAID的综合,现将四块硬盘组合成一个RAID10,并在此基础之上创建物理卷.卷组.逻辑卷,实现在线扩容,最后挂载使用. 其中也部分包含了swap分区的创建和使用. 1.根据lin ...

随机推荐

  1. 大数据之路week02 Collection 集合体系收尾(Set)

    1.Set集合(理解) (1)Set集合的特点 无序,唯一. (2)HashSet集合(掌握) A: 底层数据结构是哈希表(是一个元素为链表的数组) B: 哈希表底层依赖两个方法: hashCode( ...

  2. kubectl 自动补全

    kubectl 这个命令行工具非常重要,与之相关的命令也很多,我们也记不住那么多的命令,而且也会经常写错,所以命令自动补全是很有必要的,kubectl 工具本身就支持自动补全,只需简单设置一下即可. ...

  3. centos6.5 安装emqtt

    emqtt有监控界面,集群配置也非常简单. # yum -y update # yum install unzip vim wget xsltproc fop tk unixODBC unixODBC ...

  4. IDEA更改Maven项目的webapp的版本号

    使用Maven新建的web项目后默认的web.xml为2.3的,以前每次都是从其他文件中拷贝过来的2.5或者3.1的进行替换,怎样指定默认创建web项目的版本? 1.使用IDEA的Help文档具体的过 ...

  5. netstat 基本用法

    Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字.如果你想确认系统上的 ...

  6. qt5.6.1 +vs2015 自定义控件 不在designer显示

    qt designer 不显示自定义插件, qt5.6.1下在bin下点击designer.exe 打开qdesigner 点击帮助- 关于插件. 显示: 在vs2015 窗口中点击qt vs too ...

  7. linux下文件传输一些方法整理.

    ftp类 ftp 命令已经不推荐使用了. #基本用法 lftp sftp://[domain name] lftp sftp://theURL.org #使用不同用户名 lftp sftp://[us ...

  8. linux下设置git代理访问.

    有时候克隆仓库巨慢无比,需要设置代理. 一般情况下 proxychains 可以搞定的. 但是某些情况,如go 安装模块的时候是调用git的.这个时候proxchains就不行了. go 也可以通过设 ...

  9. Egyptian Collegiate Programming Contest (ECPC 2015) C题 Connecting Graph

    这题上次用的是线性求LCA过的,数据比较水,当时没有被T掉(不过线性的做法是在线的).现在重新的分析一下这个问题.在所有的操作都进行完毕以后,这个图形肯定会变成一棵树,而我们的要求是在这棵树上的一条链 ...

  10. slax中改变终端字体

    修改~/.Xresources文件 ! English font      Xterm*faceName: DejaVu Sans Mono=True:size=16 修改颜色: ! colos XT ...