Linux学习笔记(四)-存储管理与文件系统

来源:互联网 发布:grub2启动ubuntu 编辑:程序博客网 时间:2024/05/29 18:01

存储管理与文件系统

一. 逻辑卷基本原理
这里写图片描述
1. 卷组
- 一个PV(物理卷)要划分为大小相等的PP(物理分区)
- 同一个VG中的不同PV的PP大小要一样,默认的PP大小为4M
- PV必须加入一个VG中,系统才能使用其存储空间
- 一个卷组VG可以拥有多个硬盘,但至少拥有一个硬盘(hdisk)
- 一个硬盘(hdisk)只能属于一个VG(卷组),不能同时属于多个不同VG
- 用户可以创建多个不同VG,rootvg是操作系统所在的VG

这里写图片描述

2 . 卷组描述区VGDA(Volume Group Descriptor Area)
- VGDA是硬盘上的一块区域,包含整个卷组的信息,比如VG所拥有的所有逻辑卷和物理卷信息
- 当在一个VG中添加或删除一个PV时,会相应修改VGDA中的信息
- 为了确保描述卷组内逻辑卷和物理卷管理数据的完整性,要激活一个卷组,系统要求必须要有足够的可用的VGDA的个数,即满足quorum,
quorum一般要求至少要有51%可用

卷组描述区示意图如下:
这里写图片描述

3 . 逻辑卷
这里写图片描述
- 系统安装后,默认创建了多个系统逻辑卷,他们是以hd打头,如hd4、hd1、hd2等
- 创建了逻辑卷后,可以在上面创建应用

例如用于日志文件系统,如/dev/hd4;用于调页空间,如/dev/hd6;用于日志文件系统日志,如/dev/hd8;用于引导内核,如/dev/hd5;还可以直接是裸设备,用于数据库软件的数据存取等

- 每个卷组中用户可定义的逻辑卷最大可达256,但是实际的限制取决于分配给卷组的物理卷个数
- 逻辑卷空间不足,只要卷组中还有足够的PP数量,那么逻辑卷空间都可以动态增大

LV M概念图如下:
这里写图片描述

三者关系总结:
这里写图片描述

二.Linux 文件系统
1. 概念
- 文件系统是存储文件的目录层次结构,由一个根目录和许多子目录组成
- 文件系统是数据存储的方式
2. 文件系统的满错误
- 不同文件系统的数据存在磁盘的不同区域上,文件系统的长度不变时,即使整个系统仍有空闲的磁盘空间,当某个文件系统满时也会发生文件系统满错误
3. 超级块、备份块、inode
3.1 超级快
- 文件系统的第一个可寻址的块称为超级块, 该块存放
文件系统的标识信息(如文件系统名、文件系统长度、
inodes的数目)以及空闲inode表,空闲块表等
3.2 备份块
- 超级块是文件系统的关键数据,如果超级块损坏,则
文件系统不能正常mount。因此在第31块上存放了超级
块的备份块,以备超级块损坏时恢复
3.3 inode
- 超级块之后是固定数目的inodes, inodes存放了文件的标识信息,此外还包含指向文件数据块的指针
- 索引节点(inode)的信息可以用ls –l命令列出
- Inode不保存文件名,文件名存放在文件所在的目录文件里
这里写图片描述

三. AIX的JFS文件系统
1. 概述
- 传统的UNIX系统并不能保证在系统故障后不损失文件,尤其是当文件处于“动态”的变化中时
- AIX集成了数据库日志技术,如果文件发生更改,首先会在一个日志中记载文件结构信息的变化,然后再相应地调整文件内容
- 这个用于记录文件系统的结构信息(元数据)变化的日志就是JFS log。文件系统发生崩溃等事故后(如数据不一致等错误),AIX将通过这个日志来恢复文件系统
- AIX安装时系统默认创建的日志设备(JFS Log)是逻辑卷 /dev/hd8
2. AIX文件系统的组织
这里写图片描述

四. Linux下的换页空间
Step 1.查看Swap空间使用

# free      total        used              free     shared  buffers cached Mem:           513980    493640      20340          0     143808     271780 -/+ buffers/cache:  78052     435928 Swap:            1052248      21256    1030992                            

Step 2.在空间合适处创建swap文件

# mkdir swap# cd swap //增加1G# dd if=/dev/zero of=swapfile bs=1024 count=1000000   10000+0 records in 10000+0 records out # ls -al total 10024 drwxr-xr-x    2 root     root         4096  728 14:58 . drwxr-xr-x   19 root     root         4096  728 14:57 .. -rw-r--r--    1 root     root     10240000  728 14:58 swapfile # mkswap swapfile Setting up swapspace version 1, size = 9996 KiB 

Step 3.激活swap文件

# swapon swapfile# ls -l total 10016 -rw-r--r--    1 root     root     10240000  728 14:58 swapfile # free                           total       used       free     shared    buffers     cached Mem:                  513980     505052       8928          0     143900     282288 -/+ buffers/cache: 78864     435116 Swap:                1062240      21256    1040984

若要想使开机时自启用,则需修改文件/etc/fstab中的swap行:

/root/swap/swapfile swap swap defaults 0 0 

五. 挂接技术

  1. 基本命令

    # mount /dev/lv00 /home/patsie
    // /dev/lv00指what to mount
    // /home/patsie指where to mount it
  2. Mount在空目录
    这里写图片描述
  3. Mount在非空目录
    这里写图片描述

    4 . 系统引导后自动挂接文件系统
    Add to /etc/fstab:
    这里写图片描述

六. 备份和恢复技术
1. 需要备份的目录
一般情况下,以下这些目录是需要备份的:
- /etc: 包含所有核心配置文件。这其中包括网络配置、系统名称、防火墙规则、用户、组,以及其他全局系统项
- /var 包含系统守护进程(服务)所使用的信息,包括 DNS 配置、DHCP 租期、邮件缓冲文件、HTTP 服务器文件、db2 实例配置,等等
- /home 包含所有用户的默认用户主目录。这包括他们的个人设置、已下载的文件和用户不希望失去的其他信息
- /root 是根(root)用户的主目录
- /opt 是安装许多非系统文件的地方。IBM 软件就安装在这里。OpenOffice、JDK 和其他软件在默认情况下也安装在这里
2. 不需要备份的目录
有些目录是应该考虑不备份的:
- /proc 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图
- /dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统,那就可以备份 /dev。然而,如果计划还原到一个已安装的 Linux 系统,那么备份 /dev 是没有必要的
- 其他目录包含系统文件和已安装的包。在服务器环境中,这其中的许多信息都不是自定义的。大多数自定义都发生在 /etc 和/home 目录中
- 在生产环境中,希望确保数据不会丢失,因而会备份除 /proc 目录之外的整个系统
3. 备份工具
- Linux 备份在很大程度上就是打包和解包文件。这允许使用现有的系统实用工具和脚本来执行备份,而不必购买商业化的软件包
- 备份脚本可以使用 cron 命令来自动化,这个命令控制 Linux 中预定的事件
4. 备份命令tar
4.1. tar命令介绍
- tar 是一个已移植到 Linux 中的经典 UNIX 命令。 tar 是 tape archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。这是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件
- 使用 tar 可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或从中展开单独的文件和目录
4.2. tar语法

 语法:tar [主选项+辅选项] 文件或者目录    使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用主选项:-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。-x 从档案文件中释放文件。相当于拆包。-t 列出档案文件的内容,查看已经备份了哪些文件。特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。辅助选项:-z :是否需要用 gzip 压缩或解压? 一般格式为xx.tar.gz或xx. tgz-j :是否需要用 bzip2 压缩或解压?一般格式为xx.tar.bz2  -v :压缩的过程中显示文件!--exclude FILE:在压缩的过程中,不要将 FILE 打包!

4.3. 几个常用例子
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

# tar -cvf /tmp/etc.tar /etc    <==仅打包,不压缩!# tar -zcvf /tmp/etc.tar.gz /etc  <==打包后,以 gzip 压缩# tar -jcvf /tmp/etc.tar.bz2 /etc  <==打包后,以 bzip2 压缩// 特别注意,在参数 f 之后的文件名是自己取的,我们习惯上都用 .tar // 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file // 如果加 j 参数,则以 .tar.bz2 来作为文件名

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

# tar -ztvf /tmp/etc.tar.gz// 因为我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

# cd /usr/local/src# tar -zxvf /tmp/etc.tar.gz// 我们可以将压缩档在任何地方解开的!以这个范例来说,先将工作目录变换到 /usr/local/src 下,并且解开 /tmp/etc.tar.gz,则解开的目录会在 /usr/local/src/etc

范例四:在 /tmp 下,只将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

# cd /tmp# tar -zxvf /tmp/etc.tar.gz etc/passwd//我们可以通过 tar -ztvf 来查阅 tarfile 内的文件名称,如果只要一个文件,就可以通过这个方式来达到//注意: etc.tar.gz 内的根目录 / 被拿掉了

范例五:我要备份 /home, /etc ,但不要 /home/user001

# tar --exclude /home/user001 -zcvf myfile.tar.gz /home/* /etc
1 0