linux高级文件系统管理概述:处理交换分区、设置文件系统配额、配置raid和逻辑卷

8月26号,学习了linux(CentOS6.8)文件系统管理,内容颇多,主要分为如下几个部分:

一、处理交换分区和文件及移动介质的使用

二、常见工具free,df,du,dd的使用

三、设置文件系统配额

四、配置raid

五、配置逻辑卷

六、btrfs文件系统



一、处理交换分区和文件及移动介质的使用

交换分区是系统RAM的补充

基本设置包括:

创建交换分区或者文件

使用mkswap写入特殊签名

在/etc/fstab文件中添加适当的条目

使用swapon -a 激活交换空间

1、挂载交换分区

启用:swapon

swapon [OPTION]... [DEVICE]

-a 激活所有的交换分区

-s 查看交换分区详情

-p PRIORITY:指定优先级   若要永久生效可将/etc/fstab挂载选项处改为 pri=value

禁用:swapoff [OPTION]... [DEVICE]

2、SWAP的优先级

可以指定swap分区0到32767的优先级,值越大优先级越高

如果用户没有指定,那么核心会自动给swap指定一个优先级 ,这个优先级从-1开始,每加入一个新的没有用户指定优先 级的swap,会给这个优先级减一。

3、配置交换分区

(1) 分区启用swap

fdisk /dev/sdb

mkswap -L SWAP_SDB1 /dev/sdb1

vi /etc/fstab

LABEL=SWAP_SDB1 swap swap defaults 0 0

swpaon -a

swapon -s

注:改优先级(在/etc/fstab中挂载选项改为 pri=number)后用swapoff /dev/sdb1再swapon -s

(2) 文件启用swap

dd if=/dev/zero of=/testdir/swapfile bs=1M count=1024

mkswap  /testdir/swapfile

vi /etc/fstab

/testdir/swapfile   swap swap defaults 0 0

swapon -s cat /proc/swaps

swpaon -a

4、移动介质的使用

(1) 光盘

创建iso文件 cp /dev/sr0  /testdir/centos7.iso

将目录打包成iso文件 mkisofs -r -o /root/etc.iso  /etc/

挂载iso文件 mount -o loop /testdir/centos7.iso /mnt/iso  (-o loop 在centos7中可省略)

手工挂载光盘 mount /dev/cdrom /mnt/

挂载移动设备执行操作后用 sync 进行同步(将内存的数据写入磁盘)
    弹出光盘 eject
    弹入光盘 eject -t

刻录光盘 wodim –v –eject centos.iso

(2) USB介质

被内核探测为SCSI设备   /dev/sdaX、/dev/sdbX、或类似的设备文件

挂载后使用



二、常见工具free,df,du,dd的使用

1、内存空间使用状态:

free [OPTION]

-m: 以MB为单位

-g: 以GB为单位

2、文件系统空间占用等信息的查看工具:

df [OPTION]... [FILE]...

-H 以1000为单位

-T 文件系统类型

-h: human-readable

-i:inodes instead of blocks

-P: 以Posix兼容的格式输出

3、查看某目录总体空间占用状态:

du [OPTION]... DIR

-h: human-readable

-s: summary

4、dd命令:convert and copy a file

(1) 用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST

bs=#:block size, 复制单元大小

count=#:复制多少个bs

(2) 各选项

of=file 写到所命名的文件而不是到标准输出

if=file 从所命名文件读取而不是从标准输入

bs=size 指定块大小(既是是ibs也是obs)

ibs=size 一次读size个byte

obs=size 一次写size个byte

cbs=size 一次转化size个byte

skip=blocks 从开头忽略blocks个ibs大小的块(对if而言)

seek=blocks 从开头忽略blocks个obs大小的块(对of而言)

count=n 只拷贝n个记录

lcase 把大写字符转换为小写字符

ucase 把小写字符转换为大写字符

nocreat 不创建输出文件

noerror 出错时不停止

notrunc 不截短输出文件

(3) dd完成操作

磁盘拷贝:

dd if=/dev/sda of=/dev/sdb

备份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

备份:

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/cd.iso 拷贝光盘数据到root文件夹下,并保存为cd.iso文件

销毁磁盘数据:

dd if=/dev/urandom of=/dev/sda1 利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据 。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。

示例:有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?

#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc



三、设置文件系统配额

1、综述

在内核中执行

以文件系统为单位启用

对不同组或者用户的策略不同

根据块或者节点进行限制:执行软限制(soft limit)  硬限制(hard limit)

2、过程

(1) 磁盘配额:
    vim /etc/fstab
    UUID="文件系统uuid"     /home ext4      defaults,usrquota,grpquota  0 0

(2) 创建磁盘配额数据库
    quotacheck -cug  /home
    SElinux:
        setenforce  0
        getenforce
(3) 启用磁盘配额数据库
    quotaon   /home
(4) 配置磁盘配额
    edquota  wang (blocks部分的soft,hard,均是以K为单位,和磁盘的块不同)
    edquota -p wang mage(复制wang的磁盘配额给mage)   
    setquota  bash 100000 150000 0 0 /home(非交互式配置磁盘配额)
(5) 测试
    用户调查quota wang
    配额概述repquota /home

注:把home目录改为独立分区以可以启用磁盘配额(新建分区,暂时挂载到/mnt/home 把/home内容rm到/mnt/home,再把新分区挂载到/home)



四、设定和管理软RAID设备

RAID:廉价(独立)硬盘冗余阵列 Redundant Arrays of Inexpensive(Independent)Disks

1、作用

提高IO能力:磁盘并行读写

提高耐用性:磁盘冗余来实现

2、实现方式

外接式磁盘阵列:通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器 安装OS前在BIOS里配置

软件RAID:通过OS实现

3、级别

(1) RAID-0: 条带卷

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

(2) RAID-1: 镜像卷

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

(3) RAID-4: (一块磁盘用于存放奇偶校验位)

多块数据盘异或运算值,存于专用校验盘
(4) RAID-5: (多块磁盘依次存放校验位)

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

(5) RAID-6:(多块磁盘依次存放校验位,两块硬盘同时存放同一校验位)

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

4、RAID混合类型级别

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

(2) RAID-01

(3) RAID-50

(4) RAID7: 可以理解为一个独立存储计算机,自身带有操作系 统和管理工具,可以独立运行,理论上性能最高的RAID模式

(5) JBOD:Just a Bunch Of Disks 功能:将多块磁盘的空间合并一个大的连续空间使用 可用空间:sum(S1,S2,...)

注:常用raid级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

5、软raid:

(1) mdadm:为软RAID提供管理界面,模式化工具

命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>

支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

模式:

创建:-C  装配: -A  监控: -F  管理:-f, -r, -a

-C: 创建模式

-n #: 使用#个块设备来创建此RAID

-l #:指明要创建的RAID的级别

-a {yes|no}:自动创建目标RAID设备的设备文件(注意与管理选项-a的区别)

-c CHUNK_SIZE: 指明块大小

-x #: 指明空闲盘的个数

-D:显示raid的详细信息

mdadm -D /dev/md#

管理模式:

-f: 标记指定磁盘为损坏

-a: 添加磁盘

-r: 移除磁盘

6、软raid5配置实例
(1) fdisk /dev/sdb  n      t fd
    /dev/sdb1
    dd if=/dev/sdb of=/dev/sdd bs=1 count=512   将sdb的分区格式同步给sdd
(2) mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1   创建raid

(3) mkfs.ext4 /dev/md0
(4) vim /etc/fstab
    /dev/md0     /mnt/raid     ext4 defaults 0    0
(5) mount -a
(6) mdadm -D /dev/md0  查看状态
    cat  /proc/mdstat  观察md的状态
(7) mdadm /dev/md0 -f /dev/sdb1 模拟失败
(8) mdadm /dev/md0 -r /dev/sdb1 删除成员
(9) mdadm /dev/md0 -a /dev/sdb1 添加成员
(10) mdadm -Ds /dev/md0 > /etc/mdadm.conf
(11) umount /dev/md0;mdadm -S /dev/md0

7、软RAID管理

(1) 生成配置文件:mdadm –D –s  >> /etc/mdadm.conf

(2) 停服务:mdadm –S /dev/md0

(3) 激活:mdadm –A –s /dev/md0 激活

(4) 强制启动:mdadm –R /dev/md0

(5) 删除raid信息:mdadm --zero-superblock /dev/sdb1

8、清除软raid示例
(1) umount /dev/md0;mdadm -S /dev/md0
(2) mdadm --zero-superblock /dev/sdx 清除成员raid信息
(3) fdisk /dev/sdx 删除成员分区
(4) vim /etc/fstab
(5) rm /etc/mdadm.conf



五、逻辑卷管理器(LVM)

1、概述

允许对卷进行方便操作的抽象层,包括重新设定 文件系统的大小

允许在多个物理设备间重新组织文件系统

将设备指定为物理卷

用一个或者多个物理卷来创建一个卷组

物理卷是用固定大小的物理区域(Physical Extent, PE)来定义的

在物理卷上创建的逻辑卷 是由物理区域(PE)组成

可以在逻辑卷上创建文件 系统

2、创建逻辑卷
(1) 分区
    fdisk /dev/sda t  8e
    partx -a /dev/sda
    lsblk
(2) pvcreate  /dev/sd{a7,b}
    pvs
    pvdisplay
(3) vgcreate vg0 /dev/sd{a7,b}
    vgs;pvs;pvdisplay;vgdisplay
(4) lvcreate  -n lv0 -L 10G vg0
(5) mkfs.ext4 /dev/vg0/lv0
(6) vi /etc/fstab
    mkdir /mnt/lv0;mount -a

3、扩展lv
    lvextend  -L +10G  /dev/vg0/lv0
    resize2fs  /dev/vg0/lv0
    df -h

4、扩展卷组
    pvcreate  /dev/sdc
    vgextend vg0 /dev/sdc

5、删除逻辑卷
删除逻辑卷必须先删除LV,再删除VG,最后删除PV

6、为现有逻辑卷创建快照

#lvcreate -l  64  -s  -n snap-data -p r /dev/vg0/data



六、btrfs文件系统

技术预览版

Btrfs (B-tree, Butter FS, Better FS), GPL, Oracle, 2007, CoW

1、核心特性:

多物理卷支持:btrfs可由多个底层物理卷组成,支持RAID, 以及联机“添加”、“移除”,“修改”

写时复制更新机制(CoW):复制、更新及替换指针,而非“就地 ”更新

数据及元数据校验码:checksum

子卷:sub_volume

快照:支持快照的快照

透明压缩

2、创建和挂载

(1) 文件系统创建:

mkfs.btrfs

-L ‘LABEL‘

-d <type>: raid0, raid1, raid5, raid6, raid10, single

-m <profile>: raid0, raid1, raid5, raid6, raid10, single, dup

-O <feature>

-O list-all: 列出支持的所有feature

mkfs.btrfs -L mydata -f /dev/sdb /dev/sdc

(2) 属性查看:

btrfs filesystem show ; blkid btrfs filesystem show –mounted|all-devices

(3) 挂载文件系统:

mount -t btrfs /dev/sdb MOUNT_POINT

3、ext4和btrfs互转

(1) ext4转化为btrfs

fdisk /dev/sdd分区

mkfs.ext4 /dev/sdd1

mount /dev/sdd1 /mnt

cp /etc/fstab /mnt

umount /mnt/

fsck -f /dev/sdd1

btrfs-convert /dev/sdd1 转化ext4为btrfs

btrfs filesystem  show

mount /dev/sdd1 /mnt

(2) btrfs转化ext4文件系统

umount /mnt

btrfs-convert -r /dev/sdd1

blkid /dev/sdd1
    再转换成btrfs btrfs-convert  /dev/sdd1

时间: 2024-08-03 23:35:05

linux高级文件系统管理概述:处理交换分区、设置文件系统配额、配置raid和逻辑卷的相关文章

Linux 第15天: (08月29日) Linux高级文件系统管理

本章内容设定文件系统配额设定和管理软RAID设备配置逻辑卷设定LVM快照btrfs文件系统 配置配额系统综述在内核中执行以文件系统为单位启用对不同组或者用户的策略不同根据块或者节点进行限制执行软限制(soft limit)硬限制(hard limit)初始化分区挂载选项:usrquota.grpquota初始化数据库:quotacheck 为用户设定配额执行开启或者取消配额:quotaon.quotaoff直接编辑配额:edquota username在shell中直接编辑:setquota u

linux高级文件系统管理——btrfs

前几天,关于高级文件系统方面也给大家分享过RAID和LVM,今天给大家分享的这款文件系统可能比这两者更先进,可以将其二者合二为一.第一,它可以使用磁盘或者分区大小不一样的设备组建RAID:第二,它可以做到像LVM一样,随时扩展以及缩减使用空间,LVM支持在线扩展,但不能支持在线缩减,btrfs同时支持在线扩展和在线缩减:并且支持一条命令直接创建出带RAID功能的LV.所以个人体验之后觉得相当不错,分享于大家. 一.btrfs文件系统定义 1.Btrfs (B-tree, Butter FS, B

linux高级文件系统管理——RAID

作为大型企业,很多时候数据量相当庞大,由此以来对磁盘空间的要求比较高,更重要是的对数据的完整性的追求.所以单独的磁盘不仅空间使用满足不了,数据的完整性更是无从谈起,所以也就出现了专业的数据存储技术,而RAID是其中应用比较广泛,也是历史比较悠久的存数据储技术了.今天就给大家分享一下RAID的一些基本概念以及软件RAID的实现方法. 一.RAID的定义 RAID:Redundant Arrays of Inexpensive(Independent) Disks 1988年由加利福尼亚大学伯克利分

linux高级文件系统管理——LVM

在企业里面,很多时候,我们也无法估量应用程序对磁盘空间的使用量,如果我们使用用传统的文件系统,磁盘分区一旦确定下来以后,就再也无法更改使用空间了,如果需要更改就必须让应用程序离线后,对原有分区的数据进行备份,然后再对磁盘进行重新分区格式,重新复制原来的数据放回新的磁盘分区上,由此带来的麻烦是不言而喻的,如果是可以离线的业务,到也好说,如果是不允许离线的业务,那就影响更大.所以一代全新的文件系统LVM的问世,打破了这一技术瓶颈.它允许用户使用容量不不统一的硬盘和分区组合在一起,构成一个逻辑空间,用

Linux运维 第二阶段 (七)高级文件系统管理

Linux运维第二阶段(七)高级文件系统管理 一.磁盘配额: 多用户共同使用一个硬盘,管理员应适当限制硬盘的空间,以妥善分配系统资源. #grepCONFIG_QUOTA /boot/config-2.6.32-279.el6.i686 #rpm–qa | grep quota 用户配额和组配额:磁盘容量限制和文件个数限制:软限制和硬限制:宽限时间. 注:如果用户的空间处于软限制和硬限制之间,系统会在用户登录时警告将满,宽限时间默认7天,如果达到了宽限时间未调整,软限制就会升级为硬限制. #mo

《Linux学习并不难》文件系统管理(8):设置开机自动挂载Linux文件系统

18.8  <Linux学习并不难>文件系统管理(8):设置开机自动挂载Linux文件系统 只有将某个分区或是设备进行挂载以后才能使用,但是当计算机重新启动以后,又需要重新挂载,这个时候可以通过修改/etc/fstab文件实现开机自动挂载Linux文件系统.要实现开机自动挂载文件系统,需要在/etc/fstab文件中添加该磁盘分区的相关信息,可以通过提供设备名和UUID实现. 1.使用设备名 编辑/etc/fstab文件,在该文件末尾添加下列内容. /dev/sda5             

高级文件系统管理——Linux基本命令(15)

1.配置配额 (1)初始化 分区挂载选项:usrquota.grpquota(用户挂载,组挂载) 初始化数据库:quotacheck -cug /home (2)执行 开启或者取消配额功能:quotaon.quotaoff (开启之后发现就无法删除了,被保护了) 直接编辑配额:edquota -u/g username(对用户.对组做配额限制) 分别对文件的大小和数量进行限制.软限制就是可以允许超过软限制会发出警告,而硬限制不允许超过.因此设置的时候,软应该小于硬. 在shell中直接编辑: s

linux之高级文件系统管理

由于Linux是一个多用户管理的操作系统,而Linux默认情况下并不限制每个用户使用磁盘空间的大小,假如某个用户疏忽或者恶意占满磁盘空间,将导致系统磁盘无法写入甚至崩溃;为了保证系统磁盘的有足够的剩余空间,我们需要对用户和组进行磁盘空间使用限制. 磁盘配额限制类型: 限制用户和组对磁盘空间的使用量 限制用户和组在磁盘内创建文件的个数 磁盘配额限制级别: 软限制:低级限制,此限制可以突破,突破时会被警告,超出部分会有宽限天数,宽限天数到期后超出部分被清空,软限制不能超过硬限制 硬限制:绝对限制,此

谢烟客---------Linux之文件系统管理创建与挂载

文件系统在哪实现? 内核 内核级文件系统的组成?模块.用户空间中的程序 哪些是内核级文件系统?除了分布式文件系统 模块的定义 中间层定义 文件如何按名存取 查找文件.创建文件.存储文件文件系统.格式化 swap,虚拟内存 日志型文件系统和非日志型文件系统工作原理 超级块 文件按名存取的实现 文件系统实现按名存取将分区后的存储空间划分为数据区和元数据区. 数据区:   存储大小相同的数据块    元数据区:有多个inode块,每个inode块中存储:filename,perm,owner,grou