linux学习笔记010

RAID:

 

级别:仅代表磁盘组织方式不同,没有上下之分;

0: 条带 只有条带,存在不同的磁盘上性能提升4倍

         性能提升: 读,写

         冗余能力(容错能力): 无

         空间利用率:nS

         至少2块盘

1: 镜像 多存几份数据

         性能表现:写性能下降,读性能提升

         冗余能力:有

         空间利用率:1/2

         至少2块盘

2

3

4 5加了轮流加校验盘

5:    3份条带加一份校验码 坏了两块就不行了

 

         性能表现:读,写提升

         冗余能力:有

         空间利用率:(n-1)/n

         至少需要3块

         3条带 + 3镜像  坏一块盘动全身 先条带再镜像01

         先镜像,再条带 2(镜像)+3(条带)坏在局部10 同组不能坏

 

10:

         性能表现:读、写提升

         冗余能力:有

         空间利用率:1/2

         至少需要4块

01:

         性能表现:读、写提升

         冗余能力:有

         空间利用率:1/2

         至少需要4块

50:

         性能表现:读、写提升

         冗余能力:有

         空间利用率:(n-2)/n

    至少需要6块

jbod: 叠加多个盘

         性能表现:无提升

         冗余能力:无

         空间利用率:100%

         至少需要2块

 

 

 

逻辑RIAD:

/dev/md0

/dev/md1

fd 存了附加信息

创建2G的raid0

fdisk /dev/sda

n

+1G

n

+1G

t

5

L

fd

t

6

fd

p

w

partprobe /dev/sda

cat /proc/partitions

mdadm -C /dev/md0 -a yes -l 0 -n 2/dev/sda{5,6}

y

cat /proc/mdstat

 

mke2fs -j /dev/md0

 

fdisk -l

 

mount /dev/md0 /mnt

ls /mnt

看到lost加find成功

RAID1 2G

2个2g

fdisk /dev/sda

n

+2G

n

+2G

t

6

L

fd

t

8

fd

p

w

partprobe /dev/sda

cat /proc/partitions

 

mdadm -C /dev/md1 -a yes -l 1 -n 2/dev/sda{7,8}

cat /proc/mdstat

 

mke2fs -j /dev/md1

mke2fs -j /dev/md1 -E stride=16 -b 4096 /dev/md0

 

fdisk -l

mount /dev/md0 /mnt

 

md: 内核模块

mdadm: 将任何块设备做成RAID md管理器

模式化的命令:

         创建模式

                   -C

                            专用选项:

                                     -l:级别

                                     -n#: 设备个数

                                     -a{yes|no}: 是否自动为其创建设备文件

                                     -c:CHUNK大小, 2^n,默认为64KB

                                     -x#: 指定空闲盘个数 x+n=后面跟的设备个数

         管理模式

                   --add,--remove, --fail

                   mdadm/dev/md# --fail /dev/sda7 模拟成坏的

         监控模式

                   -F

         增长模式

                   -G

         装配模式

                   -A

 

查看RAID阵列的详细信息

mdadm -D /dev/md#

         --detail

        

停止阵列:

         mdadm-S /dev/md#

                   --stop

 

创建一个空间大小为10G的RAID5设备;其chuck大小为32k;要求此设备开机时可以自动挂载至/backup目录;

 

RAID0

         2G:

                   4:512MB

                   2:1G

 

RAID1

         2G

                   2:2G

                  

 

                  

watch: 周期性地执行指定命令,并以全屏方式显示结果

         -n#:指定周期长度,单位为秒,默认为2

格式: watch -n # 'COMMAND'

        

将当前RAID信息保存至配置文件,以便以后进行装配:

mdamd -D --scan > /etc/mdadm.conf

 

 

RAID5:

         2G:3, 1G

 

 

 

 

 

        

归档

--xattrs

 

 

 

文件系统类型:

         ext2

         ext3

        

cat /proc/filesystems : 查看当前内核所支持文件系统类型

 

RAID: 独立冗余磁盘阵列

Linux:硬件,软件

         /dev/md#

        

MD: Multi Device, 多设备

lsmod 列出模块类型

lsmod 命令:是一个小程序,用来显示文件、proc/modules的信息,也就是显示当前内核模块装载的模块。

 

mdadm:用户空间工具,管理工具 真正实现在内核

         创建

                   -C

         管理

                   --add,--remove, --fail

                   -a,-r, -f

         监控

         增长

         装配

                   -A

 

         -S

         -D

        

RAID0, RAID1

 

RAID01, RAID10

 

RAID0+1:

 

MD, DM 作raid

         /dev/md#

         metadevice

 

DM: Device Mapper

         逻辑设备

                   RAID,LVM2

                  

DM: LVM2

         快照

         多路径

         LVlogic volume

         VGvolume Group

         PVphysical Volume

 

         管理物理卷

         pvpvcreate pvremove pvscan pvdisplay pvmove

         fdisk  /dev/sda

         n

         +7G

         n

         +5G

         t

         10

         8e

         t

         10

         8e

         w

         partprobe/dev/sda

         cat/proc/partiestion

         fdisk不能超过15个

         创建物理卷

         pvcreate/dev/sda{10,11}

         pvs查看当前系统的pv

         pvdisplay显示详细信息

         pvscan扫描识别pv

         创建卷组

         vgcreatevgremove vgextend vgreduce vgs vgdispaly

         vgscan

         vgcreatemyvg /dev/sda{10,11} -s指定物理盘区(PE)大小

         vgs

         vgdisplay/dev/sda10

         vgremovemyvg

         vgcreate-s 8M myvg /dev/sda{10,11}

         移除一个pv

         pvs查看

         pvmove先移动数据

         pvmove/dev/sda11

         vgreduce

         vgreducemyvg/dev/sda11

         vgs

         pvs

         LVlogic volume

         lvcreatelvremove lvextend lvs

         lvdisplay

         lvcreate-n name -L 大小 VG名字

         lvcreate-L 50M -n testlv myvg

         lvs

         lvdisplay/dev/myvg/testly

         mke2fs-j /dev/myvg/testly

         mount/dev/myvg/testlv /mnt

         ls/mnt

         mount

         ls-l /dev/mapper

         ls-l /dev/myvg

         umount/mnt

         lvremove/dev/myvg/testly

         lvs

         扩展逻辑卷

         先扩展物理边界,再扩展逻辑边界

         lvextend

                   -L[+]#扩展到 +5G扩建了【5】

                   resize2fs-p /path/to/l

                   df-lh 显示的是文件系统的大小

                   lvs

 

 

 

 

 

任务计划

 

 

 

10G, VG

 

vgcreate VG_NAME /PATH/TO/PV

         -s#: PE大小,默认为4MB

        

lvcreate -n LV_NAME -L #G VG_NAME

 

创建pv pvcreate /dev/sda{10,11}

 

 

练习:创建一个由两个物理卷组成的大小为20G的卷组myvg,要求其PE大小为16M;而后在此卷组中创建一个大小为5G的逻辑卷lv1,此逻辑卷要能在开机后自动挂载至/users目录,且支持ACL功能;

 

缩减前面创建的逻辑卷lv1的大小至2G;

 

一、扩展逻辑卷;

先扩展物理边界

lvextend

         -L[+]# /PATH/TO/LV

lvextend -L 2G -n testly myvg

mke2fs -j /dev/myvg/testlv

mkdir /users

vim /etc/fstab

加一行开机自动挂载文件

/dev/myvg/testly    /users  ext3 defaults,acl      0,0

mount -a

cd /users

ls

看到lost加found成功挂载

 

cp /etc/inittab .

ls

cat ./inittab

cd

df -lh

lvextend -L 5G /dev/myvg/testlv

df -lh 显示文件系统的大小而不是逻辑卷的大小

lvs

先扩展物理成功

 

扩展逻辑边界

resize2fs -p /dev/myvg/testlv

df -lh

cd /usr/

cd /users

cat inittab 文件依然可以使用

 

 

缩减逻辑卷

df -ls

 

resize2fs /

确保缩减后不会小于

2G, +3G

5G   

        

再扩展逻辑边界

resize2fs

         resize2fs-p /PATH/TO/LV 能有多大扩展多大

 

 

二、缩减逻辑卷;

注意:1、不能在线缩减,得先卸载;

           2、确保缩减后的空间大小依然能存储原有的所有数据;

           3、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态;

df -lh

umount /users

e2fsck -f dv/myvg/testlv

                  

resize2fs

         resize2fs/PATH/TO/PV 3G

 

lvreduce -L [-]# /PATH/TO/LV

 

重新挂载

 

 

三、快照卷

1、生命周期为整个数据时长;在这段时长内,数据的增长量不能超出快照卷大小;

2、快照卷应该是只读的;

3、跟原卷在同一卷组内;

 

 

lvcreate

         -s创建快照卷

         -pr|w 制定权限

        

lvcreate -L # -n SLV_NAME -p r /PATH/TO/LV

lvcreate -L 50M -n testlv-sanp -s -p r/dev/myvg/testlv

lvs

mount /dev/myvg/testlv-snap /mnt

cd /mnt

ls

看见lost+found表示成功挂载

 

cp /etc/inittab ./

cp /etc/issuse ./

ls

cd

lvcreate -s -L 20M -p r -n testlv-snap/dev/myvg/testlv

cd /users

ls

cp /var/log/messages ./

ls

vim issuse

mount /dev/myvg/testlv-snap /mnt

cd /mnt

tar -jcf /tmp/usrers.tar.bz2 inittab issuse

cd

umount /mnt

lvremove /dev/myvg/testlv-snap

y

cd /users

ls

cd /users

ls

rm inittab issuse messages

y

y

y

ls

tar -xf /tmp/users.tar.bz2 -C ./

ls

 

 

 

 

脚本编程控制结构:

         顺序

         选择

                   if

                   case

         循环

                   for

                   while

                   until

 

while CONDITION; do

 statment

done

 

进入循环:条件满足

退出循环:条件不满足

                  

until CONDITION; do

 statement

  ...

done

 

进入循环:条件不满足

退出循环:条件满足

 

for 变量 in 列表; do

         循环体

done

                  

for (( expr1 ; expr2 ; expr3 )); do

  循环体

done

 

 

写一个脚本:

1、通过ping命令测试192.168.0.151到192.168.0.254之间的所有主机是否在线,

         如果在线,就显示"ipis up.",其中的IP要换为真正的IP地址,且以绿色显示;

         如果不在线,就显示"ipis down.",其中的IP要换为真正的IP地址,且以红色显示;

 

要求:分别使用while,until和for(两种形式)循环实现。

ping

         -c

         -W

 

awk 'PATTERN{ACTION}' file

         print$1

         df-Ph | awk '{print $2}'

         df-Ph | awk '{print $1,$3}'

         df-Ph | awk '{print $0}'显示所有的行

         df-Ph | awk '{print $NF}'最后一个字段

awk -F: '{print $1,$3}' /etc/passwd -F 指定分隔符

 

 

 

 

写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb),为指定的硬盘创建分区:

1、列出当前系统上所有的磁盘,让用户选择,如果选择quit则退出脚本;如果用户选择错误,就让用户重新选择;

2、当用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认;如果用户选择y就继续,n就退出;否则,让用户重新选择;

3、抹除那块硬盘上的所有分区(提示,抹除所有分区后执行sync命令,并让脚本睡眠3秒钟后再分区);并为其创建三个主分区,第一个为20M,第二个为512M, 第三个为128M,且第三个为swap分区类型;(提示:将分区命令通过echo传送给fdisk即可实现)

 

#!/bin/bash

#

echo "Initial a disk"

echo -e "\033[31mWarning:\033[0m"

fdisk -l 2>/dev/null | grep -o"^Disk /dev/[sh]d[a-z]"

read -p "your choice" PARTDISH

if [ $PARTDISH=='quit' ]; then

echo "quit"

exit 7

fi

util fdisk -l 2>/dev/null | grep -o"^Disk /dev/[sh]d[a-z]" | grep "^ Disk $PARTDISH" ;do

 read-p "Wrong option,Your choice aging:" PARTDISK

 done

read -p "will destroy all data,continue:" CHOICE

util [ $CHOICE == 'y' -o $CHOICE];do

read -p "will destroy all data,continue:"CHOICE

done

if [ $CHOICE == 'n' ]; then

echo "Quit"

exit 9;

else

dd if=/dev/zero of=/dev/sdb bs=512 count=1

sync

sleep 3

echo 'n

p

1

 

+20M

n

p

2

+512M

n

p

3

 

+128M

t

3

82

 

w'| fdisk $PARTDISH &>/dev/null

sync

 

partprobe $PARTDISH

mke2fs -j $(PARTDISH)1 $>/dev/null

mke2fs -j $(PARTDISH)2 $>/dev/null

mkswap $(PARTDISH)3 $>/dev/null

fi

 

fdisk -l |grep "

 

dd if=/dev/zero of=/dev/sdb bs=512 count=1

sync

sleep 3

 

 

RAID

LVM:

         逻辑卷的缩减

         扩展

         快照卷

 

while CONDITION; do

  循环体

done

 

while [ $VAR != 'quit' ];do 

        

done

        

#!/bin/bash

#

for I in `mount | grep "/dev/sda"| awk '{print $1}'`;

fuser -km $I

umount $I

echo "$I unmount ok."

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值