存储管理(2)
分类:linux基础 热度:

存储管理(2)
增加交换分区
 
作用: ‘提升‘ 内存的容量
========================================================
一、查看现有的交换分区
[root@yunwei  ~]# free -m
              total       used       free     shared    buffers     cached
Mem:          1010        874        135          0         51        560
-/+ buffers/cache:      262        747
Swap:         1023         0         1023
[root@yunwei  ~]# swapon -s
Filename                                           Type            Size     Used    Priority
/dev/mapper/vg01-lv_swap                partition       1048568 0       -1
 
二、增加交换分区
方法一: 使用分区或逻辑卷创建
1. 建立分区或LVM
[root@yunwei  ~]# fdisk -cu /dev/sda
[root@yunwei  ~]# partx -a /dev/sda
[root@yunwei  ~]# fdisk -cul /dev/sda
/dev/sda7        27423862    28423862      500000+  82  Linux swap / Solaris
 
2. 初始化交换分区
[root@yunwei  ~]# mkswap /dev/sda7 
 
3. 激活
[root@yunwei  ~]# vim /etc/fstab 
/dev/sda7               swap                    swap    defaults 0 0
[root@yunwei  ~]# swapon -a //激活所有的交换分区
[root@yunwei  ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/vg01-lv_swap    partition       1048568 0      -1
/dev/sda7                               partition       499992  0       -2
 
方法二:使用文件创建
[root@yunwei  ~]# dd if=/dev/zero of=/swap1.img bs=1M count=512
[root@yunwei  ~]# mkswap /swap1.img 
Setting up swapspace version 1, size = 536866 kB
[root@yunwei  ~]# vim /etc/fstab 
/swap1.img              swap                    swap    defaults 0 0
[root@yunwei  ~]# swapon -a
[root@yunwei  ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/vg01-lv_swap     partition     1048568 0       -1
/dev/sda7                                partition       499992  0      -2
/swap1.img                             file              524280  0        -3
========================================================
 
Mount挂载详解
========================================================
 
挂载选项 -t 文件系统类型 -o 选项1,选项2...
示例:
mount -t ext4 -o acl /dev/sdb1 /mnt/disk1 
文件系统类型:ext4,nfs,cifs
 
例1:exec/noexec
[root@yunwei  ~]# mount                  /dev/vg01/lv01 /mnt/lv01
[root@yunwei  ~]# mount -o noexec /dev/vg01/lv02 /mnt/lv02
[root@yunwei  ~]# cp -rf /bin/date /mnt/lv01
[root@yunwei  ~]# cp -rf /bin/date /mnt/lv02
[root@yunwei  ~]# /mnt/lv01/date 
Fri Jan 10 10:40:21 CST 2014
[root@yunwei  ~]# /mnt/lv02/date 
-bash: /mnt/lv02/date: Permission denied
[root@yunwei  ~]# 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,
维​​护​它​需​要​一​个​重​复​的​对​存​储​的​写​入​操​作​。​这​些​写​入​操​作​让​存​储​是​设​备​及​其​连​接​保​持​忙​碌​和​通​电​状态​​。​因​
为​很​少​应​用​程​序​会​使​用​ atim e 数​​据​,所​​以​这​个​存​储​设​备​活​动​是​在​浪​费​电​力​。​特​别​是​即​使​没​有​从​存​储中​​读​取
该​文​件​也​会​发​生​写​入​存​储​的​事​件​,但​​是​从​缓​冲​中​写​入​。​有​时​,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@yunwei  ~]# mount /dev/vg01/lv01  /mnt/lv01
[root@yunwei  ~]# mount -o sync /dev/vg01/lv02 /mnt/lv02
[root@yunwei  ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
/dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,sync)
[root@yunwei  ~]# time cp -rf /etc /mnt/lv01
[root@yunwei  ~]# time cp -rf /etc /mnt/lv02
 
例3:acl
[root@yunwei  ~]# vim /etc/fstab
/dev/mapper/vg01-lv01   /mnt/lv01 ext4 defaults,acl 0 0
[root@yunwei  ~]# mount -o remount /mnt/lv01
[root@yunwei  ~]# 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@yunwei  ~]# tune2fs -L yang /dev/sda3 //设置卷标LABEL
tune2fs 1.39 (29-May-2006)
[root@yunwei  ~]# vim /etc/fstab
LABEL=yang               /mnt/disk1           ext4    defaults        0 0
 
例5:使用UUID挂载
[root@yunwei  ~]# blkid /dev/sda5
/dev/sda5: UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" SEC_TYPE="ext2" TYPE="ext3" 
[root@yunwei  ~]# vim /etc/fstab
UUID="353a34b8-9233-465c-b7cf-92c8d308c05b"  /mnt/disk1   ext4  defaults   0 0
 
挂载ISO文件
1. 将光盘制作成iso
[root@yunwei  ~]# dd if=/dev/cdrom of=/rhel6.iso
[root@yunwei  ~]# dd </dev/cdrom >/rhel6.iso
 
2. 将文件制作成iso,例如将/etc制作成etc.iso
[root@yunwei  ~]# genisoimage -o /tmp/etc.iso -r /etc
[root@yunwei  ~]# file /tmp/etc.iso 
/var/etc.iso: ISO 9660 CD-ROM filesystem data 'CDROM                          '
 
3. 使用iso,挂载
[root@yunwei  ~]# mount -t iso9660 -o loop /tmp/etc.iso /mnt/iso/
 
 
Automount (Autofs)自动挂载
 
 挂载是由访问产生的
 卸载是由超时产生的
========================================================
 
一、手动挂载(临时)
mount -t 文件系统类型 -o 选项1,选项2... 设备文件 挂载点
===本地设备文件
/dev/cdrom
/dev/sr0
/dev/sda5
/dev/vg01/lv01
/dev/md0
/dev/md1
/var/dvd.iso
[root@yunwei  ~]# mount -t ext4 -o ro /dev/sda5 /mnt/sda5
[root@yunwei  ~]# mount -t iso9660 -o loop /dvd.iso /mnt/dvd
[root@yunwei  ~]# mount -t iso9660 /dev/cdrom /mn/cd
===网络设备文件
NFS:  172.16.130.1:/home/dir1
CIFS: //172.16.130.1/dir2
[root@yunwei  ~]# mount -t nfs  172.16.130.1:/home/dir1 /mnt/remote/dir1
[root@yunwei  ~]# mount -t cifs  -o username=alice%111 //172.16.130.1/dir2 /mnt/remote/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@yunwei  ~]# rpm -q autofs
autofs-5.0.5-54.el6.x86_64
[root@yunwei  ~]# grep '^TIMEOUT' /etc/sysconfig/autofs 
TIMEOUT=300                 //超时时间,300秒后不访问数据,自动卸载
 
案例1:使用automount将光盘/dev/cdrom自动挂载到/mnt/disk/cdrom
父挂载点(监控目录): /mnt/disk
子挂载点(关键字): cdrom
[root@yunwei  ~]# vim /etc/auto.master
/mnt/disk       /etc/auto.yunwei heng
[root@yunwei  ~]# vim /etc/auto.yunwei heng
cdrom     -fstype=iso9660,ro,nosuid,nodev :/dev/sr0
[root@yunwei  ~]# service autofs restart
 
案例2:使用automount将192.168.10.240:/home/dir1 /mnt/nfs/dir1
父挂载点:/mnt/nfs
子挂载点:dir1
[root@yunwei  ~]# vim /etc/auto.master
/mnt/nfs /etc/auto.nfs
[root@yunwei  ~]# vim /etc/auto.nfs
dir1     -ro     192.168.10.240:/home/dir1
[root@yunwei  ~]# service autofs restart
[root@yunwei  ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
192.168.10.240:/home/dir1
                       1032192     44544    935424   5% /mnt/nfs/dir1
========================================================
扩展知识:存储端NFS服务器配置 
[root@yunwei  ~]# mkdir /home/dir1 
[root@yunwei  ~]# chmod 777 /home/dir1
[root@yunwei  ~]# touch /home/dir1/test.txt
[root@yunwei  ~]# vim /etc/exports 
/home/dir1      *(rw,sync) //*表示所有主机
[root@yunwei  ~]# service nfs restart
[root@yunwei  ~]# chkconfig nfs on //将其设置为开机自动启动
========================================================
 
 
认识EXT3/4文件系统
 
========================================================
Ext3: 文件系统最大16TB,单个文件最大2TB
Ext4:  文件系统最大1EB,单个文件最大16TB
 
Ext3/Ext4磁盘布局:
 
inode table:  存储文件的元数据(文件权限,时间戳,指向block的指针等信息)
data block:     存储是文件的实际数据
 
inode bitmap  记录哪个inode被使用,哪个没有被使用
block bitmap   记录哪个block被使用,哪个没有被使用
 
super block     
========================================================
 
查看superblock(文件系统的信息)
dumpe2fs
[root@yunwei  ~]# dumpe2fs /dev/sda2 |less
 
tune2fs
[root@yunwei  ~]# 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@yunwei  ~]# tune2fs -L yyy /dev/sda5
[root@yunwei  ~]# tune2fs -o acl /dev/sda5
[root@yunwei  ~]# tune2fs -o ^acl /dev/sda5
 
修复文件系统(修复超块)
强烈建议,先卸载文件系统
[root@yunwei  ~]# umount /dev/sda5
[root@yunwei  ~]# fsck /dev/sda5
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
yyy: clean, 13/122112 files, 8262/244140 blocks
[root@yunwei  ~]# e2fsck /dev/sda5
e2fsck 1.39 (29-May-2006)
yyy: clean, 13/122112 files, 8262/244140 blocks
 
 
文件夹4k原因,文件夹存储的是该文件夹下存放的文件的所在位置和inode的关系,所以不大。
而文件中的块则存放的是实际内容,会很大
 
删除文件,只是删除了文件所在目录block-table中记录的inode和block的对应关系,也就是说删除文件的实际操作对象是目录。
 
关闭文件系统的日志功能
[root@node1 ~]# vim /etc/mke2fs.conf
ext4 = {
                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
                inode_size = 256
        }
删除红色的has_journal就可以关闭文件系统的日志,但是这样要注意保持不要断电!
 
 
 
文件链接
========================================================
一、符号链接  symbolic link  
[root@yunwei  ~]# echo 222 > /file222.txt
[root@yunwei  ~]# ln -s /file222.txt /boot/s-file222.txt
[root@yunwei  ~]# 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@yunwei  ~]# echo 111 > /file111.txt
[root@yunwei  ~]# ln /file111.txt /etc
[root@yunwei  ~]# ln /file111.txt /etc/h-111.txt
[root@yunwei  ~]# 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. 不支持目录做硬链接
3. 系统可以给目录做硬链接
4. 上面红色数字:是硬链接的个数
[root@yunwei  home]# ln /home/  /mnt
ln: “/home/”: 不允许将硬链接指向目录
========================================================
 

上一篇:存储管理(1) 下一篇:存储管理(3)
猜你喜欢
各种观点
热门排行
精彩图文