linux下的存储管理之二

原创 2017年01月03日 17:55:15

二、存储管理(2)

1、ext3/4文件系统

认识EXT3/4文件系统
========================================================
Ext3: 文件系统最大16TB,单个文件最大2TB
Ext4: 文件系统最大1EB,单个文件最大16TB

无限数量的子目录/ Extents/ 多块分配/ 延迟分配/ 快速 fsck/ 日志校验/ “无日志”/ 在线碎片整理/ inode 相关特性/ 默认启用 barrier

Ext3/Ext4磁盘布局:

file://C:\Users\zjyh\AppData\Local\Temp\ct_tmp/1.png

inode table: 存储文件的元数据(文件权限,时间戳,指向block的指针等信息)
data block: 存储是文件的实际数据
========================================================

查看superblock(文件系统的信息)
dumpe2fs
[root@yangs ~]# dumpe2fs /dev/sda2 |less

tune2fs
[root@yangs ~]# tune2fs -l /dev/sda3
tune2fs 1.39 (29-May-2006)
Filesystem volume name: yang
Last mounted on: <not available>
Filesystem UUID: 28459f88-87dc-4624-94a7-07b0f3eb2420
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 48960
Block count: 195312
Reserved block count: 9765
Free blocks: 183410
Free inodes: 48946
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
Journal inode: 8

更改文件系统的信息
[root@yangs ~]# tune2fs -L yyy /dev/sda5
[root@yangs ~]# tune2fs -o acl /dev/sda5
[root@yangs ~]# tune2fs -o ^acl /dev/sda5

修复文件系统(修复超块)
强烈建议,先卸载文件系统
[root@yangs ~]# umount /dev/sda5
[root@yangs ~]# fsck /dev/sda5
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
yyy: clean, 13/122112 files, 8262/244140 blocks
[root@yangs ~]# e2fsck /dev/sda5
e2fsck 1.39 (29-May-2006)
yyy: clean, 13/122112 files, 8262/244140 blocks
2、文件链接原理

文件链接
========================================================
一、符号链接 symbolic link
[root@yangs ~]# echo 222 > /file222.txt
[root@sxl1 ~]# ln -s /file222.txt /boot/s-file222.txt
[root@sxl1 ~]# ll -i /file222.txt /boot/s-file222.txt
41 lrwxrwxrwx 1 root root 12 Jan 10 16:19 /boot/s-file222.txt -> /file222.txt
18 -rw-r--r-- 1 root root 4 Jan 10 16:18 /file222.txt

二、硬链接
[root@yangs ~]# echo 111 > /file111.txt
[root@yangs ~]# ln /file111.txt /etc
[root@yangs ~]# ln /file111.txt /etc/h-111.txt
[root@yangs ~]# ll -i /file111.txt /etc/file111.txt /etc/h-111.txt
17 -rw-r--r-- 3 root root 4 Jan 10 16:16 /etc/file111.txt
17 -rw-r--r-- 3 root root 4 Jan 10 16:16 /etc/h-111.txt
17 -rw-r--r-- 3 root root 4 Jan 10 16:16 /file111.txt
注:硬链接
1. 不能跨分区
2. 不支持目录做硬链接
[root@yangs home]# ln /home/ /mnt
ln: “/home/”: 不允许将硬链接指向目录

file://C:\Users\zjyh\AppData\Local\Temp\ct_tmp/1.png

3、Mount挂载详解

Mount挂载详解
========================================================
挂载选项 -t 文件系统类型 -o 选项1,选项2...
示例:
mount -t ext4 -o acl /dev/sdb1 /mnt/disk1
文件系统类型:ext4,nfs,cifs

例1:exec/noexec
[root@yangs ~]# mount /dev/vg01/lv01 /mnt/lv01
[root@yangs ~]# mount -o noexec /dev/vg01/lv02 /mnt/lv02
[root@yangs ~]# cp -rf /bin/date /mnt/lv01
[root@yangs ~]# cp -rf /bin/date /mnt/lv02
[root@yangs ~]# /mnt/lv01/date
Fri Jan 10 10:40:21 CST 2014
[root@yangs ~]# /mnt/lv02/date
-bash: /mnt/lv02/date: Permission denied
[root@yangs ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
/dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,noexec)

没有指定任何选项,则为默认选项 man mount
defaults
Use default options: rw, suid, dev, exec, auto,
nouser, async, and relatime.

常见的挂载选项
rw 读写
ro 只读
suid 支持suid
dev 支持设备文件
nodev 不支持设备文件
noexec 不允许执行二进制文件
exec 允许执行二进制文件
auto mount -a 开机自动挂载
noauto mount -a 开机不自动挂载
async 异步写入
sync 同步同入
noatime 不更新访问时间atime
usrquota 支持用户级磁盘配额功能
grpquota 支持组级磁盘配额功能
acl 支持acl功能
remount 在线重新挂载

========================================================
扩展知识:Relatime 驱动器访问优化

POSIX 标​​准​要​求​操​作​系​统​维​护​记​录​每​个​文​件​最​后​一​次​被​访​问​的​文​件​系​统​元​数​据​。​这​个​时​间​戳​被​称​为atime,
维​​护​它​需​要​一​个​重​复​的​对​存​储​的​写​入​操​作​。​这​些​写​入​操​作​让​存​储​是​设​备​及​其​连​接​保​持​忙​碌​和​通​电​状态​​。​因​
为​很​少​应​用​程​序​会​使​用​ atime 数​​据​,所​​以​这​个​存​储​设​备​活​动​是​在​浪​费​电​力​。​特​别​是​即​使​没​有​从​存​储中​​读​取
该​文​件​也​会​发​生​写​入​存​储​的​事​件​,但​​是​从​缓​冲​中​写​入​。​有​时​,Linux 内​​核​还​支​持​ mount 的​​ noatime选​​项​,并​​
不​在​使​用​此​选​项​挂​载​的​文​件​系​统​中​写​入​ atime。​​但​是​只​是​关​闭​这​个​特​性​是​有​问​题​的​,因​​为​有​些​应用​​程​序​会依​
赖​ atime 数​​据​,并​​在​此​数​据​不​可​用​时​失​败​。

红​​帽​企​业​版​ Linux 6 使​​用​的​内​核​之​后​此​另​一​个​可​替​换​选​项​ -relatime。​​Relatime 维​​护​ atime数​​据​,但不​​是
​每​次​访​问​该​文​件​时​都​更​改​。​启​用​这​个​选​项​,则​​只​在​上​次​更​新​ atime(mtime)后​​修​改​该​文​件​时​,或​​者最​​后​一​次
​访​问​该​文​件​是​在​相​当​长​一​段​时​间​前​(默​​认​为​一​天​)时​​才​会​将​ atime 数​​据​写​入​磁​盘​。
默​​认​情​况​下​,所​​有​现​在​挂​载​的​文​件​系​统​都​启​用​ relatime。​​要​在​整​个​系​统​中​限​制​这​个​特​性​,请​​使​用​ boot 参
数​​ default_relatime=0。​​如​果​默​认​在​某​个​系​统​中​启​用​ relatime,您​​可​以​通​过​使​用​选​项​ norelatime
挂​​载​某​个​系​统​来​限​制​它​在​某​个​具​体​文​件​系​统​中​的​使​用​。​最​后​,要​​使​系​统​更​新​文​件​的​ atime 数​​据​的​默​认​周​期
有​​所​不​同​,请​​使​用​ relatime_interval= 引​​导​参​数​,以​​秒​为​单​位​指​定​周​期​。​默​认​值​为​ 86400。
========================================================

例2:async,sync
[root@yangs ~]# mount /dev/vg01/lv01 /mnt/lv01
[root@yangs ~]# mount -o sync /dev/vg01/lv02 /mnt/lv02
[root@yangs ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
/dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,sync)
[root@yangs ~]# time cp -rf /etc /mnt/lv01
[root@yangs ~]# time cp -rf /etc /mnt/lv02

例3:acl
[root@yangs ~]# vim /etc/fstab
/dev/mapper/vg01-lv01 /mnt/lv01 ext4 defaults,acl 0 0
[root@yangs ~]# mount -o remount /mnt/lv01
[root@yangs ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw,acl)

挂载时可以使用(针对基本分区)
设备名 /dev/sda3
卷标 LABEL yang
UUID UUID="353a34b8-9233-465c-b7cf-92c8d308c05b"
UDEV 可以给设备建立一个别名

例4:使用卷标挂载
[root@yangs ~]# tune2fs -L yang /dev/sda3 //设置卷标LABEL
tune2fs 1.39 (29-May-2006)
[root@yangs ~]# vim /etc/fstab
LABEL=yang /mnt/disk1 ext4 defaults 0 0

例5:使用UUID挂载
[root@yangs ~]# blkid /dev/sda5
/dev/sda5: UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" SEC_TYPE="ext2" TYPE="ext3"
[root@yangs ~]# vim /etc/fstab
UUID="353a34b8-9233-465c-b7cf-92c8d308c05b"/mnt/disk1 ext4 defaults 0 0

挂载ISO文件
1. 将光盘制作成iso
[root@yangs ~]# dd if=/dev/cdrom of=/rhel6.iso
[root@yangs ~]# dd </dev/cdrom >/rhel6.iso
2. 将文件制作成iso,例如将/etc制作成etc.iso
[root@yangs ~]# genisoimage -o /tmp/etc.iso -r /etc
[root@yangs ~]# file /tmp/etc.iso
/var/etc.iso: ISO 9660 CD-ROM filesystem data 'CDROM '
3. 使用iso,挂载
[root@yangs ~]# mount -t iso9660-o loop /tmp/etc.iso /mnt/iso/

file://C:\Users\zjyh\AppData\Local\Temp\ct_tmp/1.png

4、Autofs自动挂载

Automount (Autofs)自动挂载
挂载是由访问产生的卸载是由超时产生的
========================================================
一、手动挂载(临时)
mount -t 文件系统类型 -o 选项1,选项2... 设备文件 挂载点
===本地设备文件
/dev/cdrom
/dev/sr0
/dev/sda5
/dev/vg01/lv01
/dev/md0
/dev/md1
/var/dvd.iso
[root@yangs ~]# mount -t ext4 -o ro /dev/sda5 /mnt/sda5
[root@yangs ~]# mount -t iso9660 -o loop /dvd.iso /mnt/dvd
[root@yangs ~]# mount -t iso9660 /dev/cdrom /mn/cd
===网络设备文件
NFS: 192.168.10.240:/home/dir1
CIFS: //192.168.10.240/dir2
[root@yangs ~]# mount -t nfs 192.168.10.240:/home/dir1 /mnt/dir1
[root@yangs ~]# mount -t cifs //192.168.0.240/dir2 /mnt/dir2

二、实现自动挂
第一种解决方案: /etc/fstab
/dev/sda5 /mnt/sda5 ext4 defaults 0 0
192.168.10.240:/home/dir1 /mnt/dir1 nfs defaults 0 0
//192.168.10.240/dir2 /mnt/dir2 cifs defaults 0 0
优点:可以实现开机自动挂载
缺点:由于网络连接的不稳定性,会导致网络设备挂载失败
结论:适合挂载本地设备和持续使用的设备

第二种解决方案: automount按需挂载
[root@yangs ~]# rpm -q autofs
autofs-5.0.5-54.el6.x86_64
[root@yangs ~]# grep '^TIMEOUT' /etc/sysconfig/autofs
TIMEOUT=300

案例1:使用automount将光盘/dev/cdrom自动挂载到/mnt/disk/cdrom
父挂载点(监控目录): /mnt/disk
子挂载点(关键字): cdrom
[root@yangs ~]# vim /etc/auto.master
/mnt/disk /etc/auto.yangsheng
[root@yangs ~]# vim /etc/auto.yangsheng
cdrom -fstype=iso9660,ro,nosuid,nodev:/dev/sr0
[root@yangs ~]# service autofs restart

案例2:使用automount将192.168.10.240:/home/dir1 /mnt/nfs/dir1
父挂载点:/mnt/nfs
子挂载点:dir1
[root@yangs ~]# vim /etc/auto.master
/mnt/nfs /etc/auto.nfs
[root@yangs ~]# vim /etc/auto.nfs
dir1 -ro 192.168.10.240:/home/dir1
[root@yangs ~]# service autofs restart
[root@yangs ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
192.168.10.240:/home/dir1
1032192 44544 935424 5% /mnt/nfs/dir1
========================================================
扩展知识:存储端NFS服务器配置
[root@yangs ~]# mkdir /home/dir1
[root@yangs ~]# chmod 777 /home/dir1
[root@yangs ~]# touch /home/dir1/test.txt
[root@yangs ~]# vim /etc/exports
/home/dir1 *(rw,sync) //*表示所有主机
[root@yangs ~]# service nfs restart
[root@yangs ~]# chkconfig nfs on //将其设置为开机自动启动
========================================================

5、磁盘配额

磁盘配额 quota
作用: 限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器...
========================================================
一、 启用磁盘限额
1. 让文件系统支持配额
[root@yangs ~]# vim /etc/fstab
/dev/vg01/lv_home /home ext4 defaults,usrquota,grpquota 1 2
[root@yangs ~]# mount -o remount /home/
[root@yangs ~]# mount
/dev/mapper/vg01-lv_home on /home type ext3 (rw,usrquota,grpquota)

2. 创建磁盘配额的数据库文件
注意: 建议停用SELinux
[root@yangs ~]# quotacheck -acug
[root@yangs ~]# ll /home/aquota.*
-rw------- 1 root root 12288 09-09 23:06 /home/aquota.group
-rw------- 1 root root 11264 09-09 23:06 /home/aquota.user
//-a 所有分区(已支持配额)
//-c 创建
//-u 用户
//-g 组

3.启动磁盘配额
[root@yangs ~]# quotaon -a //启动所有分区的磁盘配额

二、日常管理
+++设置配额+++
方法一:edquota
[root@yangs ~]# edquota -u alice
Disk quotas for user alice (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/vg01-lv_home 16 8192 10240 4 0 8

blocks: 从磁盘的使用量限制,比如限制用户使用10M,单位是k
inodes: 从创建文件数限制,比如只能建立100个文件
soft: 软限制 block 8M
hard: 硬限制 block 10M
grace time: 宽限期,默认7天 # edquota -t


[root@yangs ~]# su - alice
[alice@yangs ~]$ pwd
/home/alice
[alice@yangs ~]$ dd if=/dev/zero of=file99 bs=1M count=6
6+0 records in
6+0 records out
6291456 bytes (6.3 MB) copied, 0.00549407 seconds, 1.1 GB/s
[alice@yangs ~]$ dd if=/dev/zero of=file99 bs=1M count=9
dm-2: warning, user block quota exceeded.
9+0 records in
9+0 records out
9437184 bytes (9.4 MB) copied, 0.0113783 seconds, 829 MB/s
[alice@yangs ~]$ dd if=/dev/zero of=file99 bs=1M count=11
dm-2: warning, user block quota exceeded.
dm-2: write failed, user block limit reached.
dd: 写入 “file99”: 超出磁盘限额
10+0 records in
9+0 records out
10440704 bytes (10 MB) copied, 0.0101768 seconds, 1.0 GB/s

[alice@yangs ~]$ quota //查看自己的配额情况
Disk quotas for user alice (uid 500):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/vg01-lv_home
10240* 8192 10240 6days 8* 0 8

方法二: setquota
# setquota -u username block软限制 block硬限制 inode软限制 inode硬限制 分区
# setquota -u jack 80000 100000 15 20 /dev/sda2
# quota jack

方法三:复制
# edquota -p alice tom robin user1 user2 user3
将alice的配额方案复制给后面所有用户
+++查看配额+++
查看单个用户的配额: # quota jack
查看所有用户的配额: # repquota -a
# repquota -ag
普通用户查看自己配额: $ quota
========================================================
扩展知识:针对组设置配额
例1:限制hr组的成员能在/home/hr目录中:100M 50文件
[root@yangs ~]# groupadd hr
[root@yangs ~]# useradd hr01 -G hr
[root@yangs ~]# useradd hr02 -G hr
[root@yangs ~]# mkdir /home/hr
[root@yangs ~]# chgrp hr /home/hr
[root@yangs ~]# chmod 2770 /home/hr
[root@yangs ~]# ll -d /home/hr
drwxrws--- 2 root hr 4096 09-12 17:07 /home/hr

[root@yangs ~]# edquota -g hr
Disk quotas for group hr (gid 507):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/vg01-lv_home 4 0 102400 1 0 50
[root@yangs ~]# repquota -ag
========================================================

版权声明:本文为博主原创文章,未经博主允许不得转载。

linux下内存管理学习心得(一)

最近在学习内存管理的时候,发现对linux下的所谓内存如何管理如何分配都不熟悉,通过最近的查阅资料可总结如下,如有不妥之处欢迎大家批评与指正。 总的的来说linux的内存管理其实主要难理解的是以下几...
  • yuanzhangmei1
  • yuanzhangmei1
  • 2013年03月19日 10:42
  • 1557

操作系统存储管理实验课程设计报告

操作系统报告 存储管理 姓名: 郑兆涵                                           专业: 计算机科学与技术(嵌入式方向) 一、...
  • zzh_569754126
  • zzh_569754126
  • 2016年05月24日 18:47
  • 6071

内存的存储管理--段式和页式管理的区别

存储管理的基本原理 内存管理方法 内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。 下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本...
  • u012442401
  • u012442401
  • 2015年06月02日 23:59
  • 4480

linux下的存储管理之一

一、存储管理(1) 1、存储的基础知识 知识点: 基本分区、逻辑卷LVM、EXT3/4文件系统、磁盘限额、RAID △磁头(Heads):每张磁片的正反两面各有一个磁头,一个磁头对应...
  • qq_36800675
  • qq_36800675
  • 2017年01月03日 17:48
  • 871

linux下存储管理之三

三、存储管理(3) 1、磁盘阵列RAID RAID RAID:廉价磁盘冗余阵列 作 用:容错、提升读写速率 ==========================================...
  • qq_36800675
  • qq_36800675
  • 2017年01月03日 18:02
  • 114

Linux 内核源代码情景分析 chap2 存储管理(二)

几个重要的数据结构和函数1. 物理地址管理1.1 pgd_t, pmd_t, pte_t页面目录PGD, 中间目录PMD 和 页面表PT 分别是由 pgd_t, pmd_t, pte_t 构成的数组,...
  • zhyh1435589631
  • zhyh1435589631
  • 2016年03月28日 20:39
  • 749

2.6 Linux存储管理-物理页面的使用和周转

说明一些概念: 虚拟页面:指虚拟空间中,一段固定大小、边界与页面大小对齐的区间及其内容。 物理页面:虚拟页面映射到的介质上,可以在内存上(内存页面),也可以在磁盘上(盘上页面)。 页...
  • zhangshuaiisme
  • zhangshuaiisme
  • 2017年07月23日 23:43
  • 77

2.3 linux存储管理-重要的数据结构和函数

linux内核书籍阅读记录
  • zhangshuaiisme
  • zhangshuaiisme
  • 2017年07月20日 23:09
  • 167

linux情景分析第二章-----存储管理(2)

2.4越界访问 linux中的虚拟地址通过PGD,PTE等映射到物理地址。但当这个映射过程无法正常映射时候,就会报错,产生page fault exception。那么什么时候会无法正常呢? ...
  • mihouge
  • mihouge
  • 2011年11月14日 10:07
  • 6557

2.7 Linux存储管理-物理页面分配

Linux内核书籍阅读记录
  • zhangshuaiisme
  • zhangshuaiisme
  • 2017年07月22日 22:39
  • 120
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux下的存储管理之二
举报原因:
原因补充:

(最多只允许输入30个字)