Linux lvm 无法硬链接,Linux技术研究-基础篇(raid与LVM,配额)

创建RAID-5

若想建立新的md1设备 只在/dev下建立还不够 重启后会消失

固化的方法是

为了使udev自动产生/dev/md1, /dev/md2,需要在/etc/udev目录下建立devices子目录,并手工建立md1,md2。这样udev会在系统启动时把md1,md2复制到/dev目录下

[root@server1 ~]# mkdir /etc/udev/devices

[root@server1 ~]# cd /etc/udev/devices

[root@server1 ~]# mknod md1 b 9 1

[root@server1 ~]# mknod md2 b 9 2

# mdadm -C /dev/md0 -l 5 -n 3 /dev/sda5 /dev/sda6 /dev/sda7

mdadm: array /dev/md0 started.

# mdadm -D /dev/md0

/dev/md0:

Version : 00.90.03

Creation Time : Sat May 16 12:02:03 2009

Raid Level : raid5

Array Size : 594176 (580.35 MiB 608.44 MB)

Used Dev Size : 297088 (290.17 MiB 304.22 MB)

Raid Devices : 3

Total Devices : 3

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Sat May 16 12:02:08 2009

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 0

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 64K

UUID : 5a944e39:948186b6:f2927409:b0ee5d4a

Events : 0.2

Number   Major   Minor   RaidDevice State

0       8        5        0      active sync   /dev/sda5

1       8        6        1      active sync   /dev/sda6

2       8        7        2      active sync   /dev/sda7

生成 /etc/mdadm.conf 配置文件

[root@lan1 dev]# mdadm -D -s

ARRAY /dev/md0 level=raid5 num-devices=3 UUID=5a944e39:948186b6:f2927409:b0ee5d4a

[root@lan1 dev]# mdadm -D -s > /etc/mdadm.conf

模拟损坏

[root@lan1 /]# mdadm /dev/md0 -f /dev/sda6

mdadm: set /dev/sda6 faulty in /dev/md0

[root@lan1 /]# mdadm -D /dev/md0

Number   Major   Minor   RaidDevice State

0       8        5        0      active sync   /dev/sda5

1       0        0        1      removed

2       8        7        2      active sync   /dev/sda7

3       8        6        -      faulty spare   /dev/sda6

[root@lan1 /]#

将损坏的盘移除

[root@lan1 /]# mdadm /dev/md0 -r /dev/sda6

mdadm: hot removed /dev/sda6

[root@lan1 /]# mdadm -D /dev/md0

Number   Major   Minor   RaidDevice State

0       8        5        0      active sync   /dev/sda5

1       0        0        1      removed

2       8        7        2      active sync   /dev/sda7

[root@lan1 /]#

添加一个新盘

[root@lan1 /]# partprobe /dev/sda

[root@lan1 /]# mdadm /dev/md0 -a /dev/sda8

mdadm: added /dev/sda8

不需要格式化会自动重构

Number   Major   Minor   RaidDevice State

0       8        5        0      active sync   /dev/sda5

3       8        8        1      spare rebuilding   /dev/sda8

2       8        7        2      active sync   /dev/sda7

[root@lan1 /]# mdadm -D /dev/md0

Number   Major   Minor   RaidDevice State

0       8        5        0      active sync   /dev/sda5

1       8        8        1      active sync   /dev/sda8

2       8        7        2      active sync   /dev/sda7

[root@lan1 /]#

启用与停用

[root@lan1 ~]# umount /mnt

[root@lan1 ~]# mdadm -A -s /dev/md0

mdadm: device /dev/md0 already active - cannot assemble it

[root@lan1 ~]# mdadm -S -s /dev/md0

mdadm: stopped /dev/md0

[root@lan1 ~]# mdadm -D -s /dev/md0

mdadm: md device /dev/md0 does not appear to be active.

[root@lan1 ~]# mdadm -A -s /dev/md0

mdadm: /dev/md0 has been started with 3 drives.

[root@lan1 ~]# mdadm -D -s /dev/md0

/dev/md0:

Version : 00.90.03

Creation Time : Sat May 16 12:02:03 2009

Raid Level : raid5

Array Size : 594176 (580.35 MiB 608.44 MB)

Used Dev Size : 297088 (290.17 MiB 304.22 MB)

Raid Devices : 3

Total Devices : 3

Preferred Minor : 0

Persistence : Superblock is persistent

Update Time : Sat May 16 12:15:50 2009

State : clean

Active Devices : 3

Working Devices : 3

Failed Devices : 0

Spare Devices : 0

Layout : left-symmetric

Chunk Size : 64K

UUID : 5a944e39:948186b6:f2927409:b0ee5d4a

Events : 0.12

Number   Major   Minor   RaidDevice State

0       8        5        0      active sync   /dev/sda5

1       8        8        1      active sync   /dev/sda8

2       8        7        2      active sync   /dev/sda7

[root@lan1 ~]#

移除

[root@lan1 /]# umount /mnt

[root@lan1 /]# mdadm -S -s /dev/md0

mdadm: stopped /dev/md0

[root@lan1 /]# mdadm --zero-superblock /dev/sda5 /dev/sda7 /dev/sda8

[root@lan1 /]# mdadm -A -s /dev/md0

mdadm: /dev/md0 assembled from 1 drive - not enough to start the array.

[root@lan1 /]#

LVM

建立三个分区,修改类型为 8e Linux LVM

[root@lan1 ~]# fdisk -l

/dev/sda5             844         868      200781   8e Linux LVM

/dev/sda6             869         905      297171   8e Linux LVM

/dev/sda7             906         967      497983+ 8e Linux LVM

[root@lan1 ~]#

[root@lan1 ~]# partprobe /dev/sda

建立PV

[root@lan1 ~]# pvcreate /dev/sda5 /dev/sda6 /dev/sda7

Physical volume "/dev/sda5" successfully created

Physical volume "/dev/sda6" successfully created

Physical volume "/dev/sda7" successfully created

[root@lan1 ~]#

[root@lan1 ~]# pvdisplay

--- Physical volume ---

PV Name               /dev/sda5

VG Name               vg01

PV Size               196.08 MB / not usable 4.08 MB

Allocatable           yes

PE Size (KByte)       4096

Total PE              48

Free PE               48

Allocated PE          0

PV UUID               dzPs4H-MZ9Q-nYwV-IVVA-gJOQ-gVBK-gL90JC

--- Physical volume ---

PV Name               /dev/sda6

VG Name               vg01

PV Size               290.21 MB / not usable 2.21 MB

Allocatable           yes

PE Size (KByte)       4096

Total PE              72

Free PE               72

Allocated PE          0

PV UUID               vbrCn3-2yxX-3CN4-qp3p-USyU-nxej-oPH2bS

--- Physical volume ---

PV Name               /dev/sda7

VG Name               vg01

PV Size               486.31 MB / not usable 2.31 MB

Allocatable           yes

PE Size (KByte)       4096

Total PE              121

Free PE               121

Allocated PE          0

PV UUID               D1AkXh-pzMY-MVFT-JC8W-ODB9-vKD4-0f7TEC

[root@lan1 ~]#

建立VG

[root@lan1 ~]# vgcreate vg01 /dev/sda5 /dev/sda6 /dev/sda7

Volume group "vg01" successfully created

[root@lan1 ~]#

[root@lan1 ~]# vgdisplay

--- Volume group ---

VG Name               vg01

System ID

Format                lvm2

Metadata Areas        3

Metadata Sequence No 1

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                0

Open LV               0

Max PV                0

Cur PV                3

Act PV                3

VG Size               964.00 MB

PE Size               4.00 MB

Total PE              241

Alloc PE / Size       0 / 0

Free PE / Size       241 / 964.00 MB

VG UUID               8JdrEK-7W3n-A3Fi-cOwN-MdJ0-aIRC-7Cq5vx

[root@lan1 ~]#

建立 LV

[root@lan1 ~]# lvcreate -L 400M -n lv01 vg01

Logical volume "lv01" created

[root@lan1 ~]#

[root@lan1 ~]# lvcreate -L 100M -n lv02 vg01

Logical volume "lv02" created

[root@lan1 ~]#

[root@lan1 ~]# ll /dev/vg01/

总计 0

lrwxrwxrwx 1 root root 21 05-16 12:29 lv01 -> /dev/mapper/vg01-lv01

lrwxrwxrwx 1 root root 21 05-16 12:29 lv02 -> /dev/mapper/vg01-lv02

[root@lan1 ~]#

格式化

[root@lan1 ~]# mke2fs -j /dev/vg01/lv01

[root@lan1 ~]# mke2fs -j /dev/vg01/lv02

[root@lan1 ~]# mount

/dev/mapper/vg01-lv01 on /mnt type ext3 (rw)

[root@lan1 ~]#

伸缩VG

放大

[root@lan1 ~]# vgdisplay | grep 'VG Size'

VG Size               964.00 MB

[root@lan1 ~]#

[root@lan1 ~]# pvcreate /dev/sda8

Physical volume "/dev/sda8" successfully created

[root@lan1 ~]# vgextend vg01 /dev/sda8

Volume group "vg01" successfully extended

[root@lan1 ~]#

[root@lan1 ~]# vgdisplay | grep 'VG Size'

VG Size               1.32 GB

缩小

[root@lan1 ~]#

[root@lan1 ~]# vgreduce vg01 /dev/sda8

Removed "/dev/sda8" from volume group "vg01"

[root@lan1 ~]# vgdisplay | grep 'VG Size'

VG Size               964.00 MB

[root@lan1 ~]#

伸缩LV

放大

[root@lan1 ~]# lvdisplay /dev/vg01/lv01 | grep 'LV Size'

LV Size                400.00 MB

[root@lan1 ~]# lvextend -L +100M /dev/vg01/lv01

Extending logical volume lv01 to 500.00 MB

Logical volume lv01 successfully resized

[root@lan1 ~]# lvdisplay /dev/vg01/lv01 | grep 'LV Size'

LV Size                500.00 MB

[root@lan1 ~]#

[root@lan1 ~]# df -Th

文件系统      类型    容量 已用 可用 已用% 挂载点

/dev/sda2     ext3    5.7G 2.4G 3.1G 44% /

/dev/sda1     ext3     99M   12M   83M 12% /boot

tmpfs        tmpfs    125M     0 125M   0% /dev/shm

/dev/mapper/vg01-lv01

ext3    388M   11M 358M   3% /mnt

[root@lan1 ~]# ext2online /dev/vg01/lvm01 # RHEL4的在线扩容命令

[root@lan1 ~]# resize2fs /dev/vg01/lv01 # RHEL5的在线扩容命令

resize2fs 1.39 (29-May-2006)

Filesystem at /dev/vg01/lv01 is mounted on /mnt; on-line resizing required

Performing an on-line resize of /dev/vg01/lv01 to 512000 (1k) blocks.

The filesystem on /dev/vg01/lv01 is now 512000 blocks long.

[root@lan1 ~]# df -Th

文件系统      类型    容量 已用 可用 已用% 挂载点

/dev/sda2     ext3    5.7G 2.4G 3.1G 44% /

/dev/sda1     ext3     99M   12M   83M 12% /boot

tmpfs        tmpfs    125M     0 125M   0% /dev/shm

/dev/mapper/vg01-lv01

ext3    485M   11M 449M   3% /mnt

[root@lan1 ~]#

缩小

[root@lan1 /]# umount /mnt

先离线

再做强制检查

[root@lan1 /]# e2fsck -f /dev/vg01/lv01

e2fsck 1.39 (29-May-2006)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/vg01/lv01: 81/51200 files (2.5% non-contiguous), 12353/204800 blocks

收缩文件系统

[root@lan1 /]# resize2fs /dev/vg01/lv01 100M

resize2fs 1.39 (29-May-2006)

Resizing the filesystem on /dev/vg01/lv01 to 102400 (1k) blocks.

The filesystem on /dev/vg01/lv01 is now 102400 blocks long.

[root@lan1 /]# lvdisplay

--- Logical volume ---

LV Name                /dev/vg01/lv01

VG Name                vg01

LV UUID                CjVh40-MrBQ-u852-W5oQ-pd8j-5MJ1-ZmYDQZ

LV Write Access        read/write

LV Status              available

# open                 0

LV Size                200.00 MB

Current LE             50

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:0

再收缩LV

[root@lan1 /]# lvresize -L 100M /dev/vg01/lv01

WARNING: Reducing active logical volume to 100.00 MB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce lv01? [y/n]: y

Reducing logical volume lv01 to 100.00 MB

Logical volume lv01 successfully resized

[root@lan1 /]# lvdisplay

--- Logical volume ---

LV Name                /dev/vg01/lv01

VG Name                vg01

LV UUID                CjVh40-MrBQ-u852-W5oQ-pd8j-5MJ1-ZmYDQZ

LV Write Access        read/write

LV Status              available

# open                 0

LV Size                100.00 MB

Current LE             25

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:0

[root@lan1 /]# mount /dev/vg01/lv01 /mnt

[root@lan1 /]# df -Th

文件系统      类型    容量 已用 可用 已用% 挂载点

/dev/sda2     ext3    5.7G 2.4G 3.1G 44% /

/dev/sda1     ext3     99M   12M   83M 12% /boot

tmpfs        tmpfs    125M     0 125M   0% /dev/shm

/dev/mapper/vg01-lv01

ext3     97M 5.8M   86M   7% /mnt

[root@lan1 /]#

文件系统简介

在众多个linux发行版中存在着很多种文件系统格式,在RHEL中默认使用的是EXT3

EXT3从EXT2中升级而来,做了什么升级呢?

因为断电后内存与硬盘数据不符合,导致在ex2中很容易遇到故障,对此EXT3添加了日志功能

日志中记录了用户的操作.断电后下次开机如果记录与内容不符合则通过日志做redo.

这是日志的最大好处--加速恢复.

简单的说 EXT3 = EXT2 + journal

无论是哪种文件系统,为了提高存储效率,linux都会在文件系统上建立许多block

再为每一个块给予一个编号,做为block的识别码

在众多的block中,又分为两种,一种叫data_block,一种叫inode_block

我们在linux中建立一个文件时,linux除了存储这个文件的内容外,还会存储文件的相关信息

比如:大小,权限,拥有者等等

那么文件内容就存在于data_block中,文件的属性信息就存在inode_block中

当我们读取一个文件时,linux先去找这些相关的信息,根据这些信息才能从磁盘中取得文件内容

那么现在你应该知道文件的分成两部分存储在block中

属性信息存在inode_block,文件内容存在data_block

用 ls -li

65501 -rwxr-xr-x 1 seker seker    29150 2008-09-10 install.log

65501既是install.log文件的block编号

那么linux又是如何找到inode的呢?

答案是通过目录

符号链接

链接是一种特殊文件,在使用连接文件时,实际使用的是原始文件.使用者有种两个文件能相互同步的感觉

如果真要想弄明白链接的内部结构 需要从inode与block的层面才能分析清楚.

连接有两种:

建立命令 : 硬 ln src.log hard

软 ln -s src.log soft

1.硬链接

linux会在文件的存放目录中(data_block)添加一个新的文件名

而指向的inode编号与原始文件的inode编号相同,再把inode中的连接数+1.

原始数据始终都是只有一份,只是两个文件名同时引用了一个inode编号

2.软连接

linux会在文件的存放目录中(data_block)添加一个新的文件名

同时inode编号也全新的,只是新的inode中记录的是原始文件的路径名称

目录的data_block信息

--------------------

| 文件名   inode |

| src.log   1555   |

|    hard   1555   |

|    soft   1888   |

--------------------

文件的inode信息

--------------------

| 1555    1888    |

--------------------

其中1555指向的是文件data_block,而1888则指向的是目录data_block中的src.log 1555这一条路径

硬链接和软连接的差别

1. 类型 查看的文件类型字符处,硬链接与原始文件类型相同,软连接则是l

2. 权限 硬链接与原始文件权限相同,软连接则是777权限,但实际权限则取决于原始文件.

3. 大小 硬链接显示的与原始文件相同,但实际并不浪费空间,软链接则是原始文件路径名称的字符数

4. 删除 删除原始文件后,硬链接依然可以使用,而软连接则失效

当删除文件时,会在文件的inode中将连接数减一,如果减一后不是0,则不回收相关inode与block

5. 限制   硬链接只能作用于文件,且不能跨分区;软链接即可作用于目录又可以是文件,可跨分区

6. inode 硬链接与原始文件使用同一个inode,软链接则是独立的使用一个新的inode

演示:

软硬链接都是读取的一份原始数据,软连接只认一个原始文件名字

[root@lan2 dir2]# echo "00000000" >> file_src

[root@lan2 dir2]# ln file_src link_hard

[root@lan2 dir2]# ln -s file_src link_soft

[root@lan2 dir2]# cat link_hard

00000000

[root@lan2 dir2]# cat link_soft

00000000

[root@lan2 dir2]# ll -i

总计 8

65591 -rw-r--r-- 2 root root 9 05-16 15:42 file_src

65591 -rw-r--r-- 2 root root 9 05-16 15:42 link_hard

65598 lrwxrwxrwx 1 root root 8 05-16 15:42 link_soft -> file_src

[root@lan2 dir2]#

[root@lan2 dir2]# rm -rf file_src

[root@lan2 dir2]# cat link_hard

00000000

[root@lan2 dir2]# cat link_soft

cat: link_soft: 没有那个文件或目录

[root@lan2 dir2]#

[root@lan2 dir2]# cat link_soft

cat: link_soft: 没有那个文件或目录

[root@lan2 dir2]# echo "1111111" >> file_src

[root@lan2 dir2]# cat link_soft

1111111

[root@lan2 dir2]#

quota 磁盘配额

限制某用户建立大文件或多文件把磁盘空间耗尽,把inode耗尽.

基于两种模式user和group级,常用的是user级.

mount -o remount,rw,usrquota /home

quotacheck /home

quotaon /dev/sda4

创建配额文件.

ls /home/aquota.user

编辑配额

edquota -u user_name

blocks 用户已使用了多少.不能修改.这里和mkfs的BLOCK没关系.默认是1K = 1 block

soft   软限制(警告限制).

hard   硬限制(停用限制).

当blocks使用到soft时,给出警告. 达到hard时,停止了.

inodes 一般情况下一个文件使用一个inode.限制用户可以建立多少个文件.

打印配额报表

repquota -a

7days是达到了soft,还没到hard.那么第七天后也依旧不能再使用剩余的free space了.

修改方法 edquota -t

组的配额

/

| 组成员共同拥有的资源控制.

\

setquota 设置方法 , 可以写用户交互脚本,把变量引入这个命令去执行.

[root@seker ~]# setquota

setquota: Bad number of arguments.

setquota: Usage:

setquota [-u|-g] [-F quotaformat]

-a|...

setquota [-u|-g] [-F quotaformat] -a|...

setquota [-u|-g] [-F quotaformat] -b -a|...

setquota [-u|-g] [-F quotaformat] -t -a|...

setquota [-u|-g] [-F quotaformat] -T -a|...

Bugs to: mvw@planets.elm.net, jack@suse.cz

[root@seker ~]#

setquota -u seker 200 400 20 40 /dev/sda6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值