Linux学习日志(七)

RAID

磁盘的性能

   1.定位
   2.旋转
   3.命令队列
   4.数据库传输

HBA:基于主机的适配器

RAID:Redundent Array of Inexpensive Disks 廉价磁盘阵列

Independent 独立磁盘阵列

Level:仅用于标识磁盘组合方式的不同,不能取代数据备份

 raid0:提高读写性能,没有容错能力。至少需要两块磁盘 100%

 raid1:至少需要两块硬盘,镜像,硬件容错能力,读性能提升,写性能下降 50%

 raid4:至少需要三块硬盘,允许一块盘出错,读写性能提升,(n-1)/n

 raid5: 至少需要三块硬盘,允许一块盘出错,读写性能提升,(n-1)/n

 raid6: 至少需要四块磁盘,允许两块盘出错。读写性能提升,(n-2)/n

 raid10:至少需要四块磁盘。允许不同组内个各坏一块盘,读写性能提升,50%
 raid01:

  jbod:两个盘结合起来当一个盘用,写完一个盘写另外一个。

md,可以组合任何块设备

 命令的配置文件: mdadm,/etc/mdadm.conf

mdadm:模式化的工具

-A  Assemble 装配模式

-C  Create 创建模式
  -n #:用于创建RAID设备的个数
  -x #: 热备磁盘的个数
  -l :指定RAID级别
  -a :=yes(自动为创建的RAID设备创建设备文件) md mdp part p 如何创建设备文件
  -c:指定块的大小,默认为512KB
-F FOLLOW 监控
-S 停止RAID
-D --detail: 显示阵列详细信息

创建一个大小为12G的RAID0:2*6G,3*4G 4*3G 6*2G

   mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}

watch ‘’

   -n #:每个#执行一次指定的命令,单位为s

问题一:mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}

     mdadm: cannot open /dev/sdb1: Device or resource busy

练习:创建一个大小为4G的RAID5,要求直接具有一个空闲盘

bash知识点:while循环和until循环

for循环

  for varName in 列表;do
   循环体
  done

条件测试:

执行条件:命令成功,条件测试成功;否则为失败
根据$?,状态返回值

表达式:

   [ expreession ]
   [[ expression ]]
   test expression

while循环

while 条件测试:do
   循环体
  done

如何退出?

   必须有时刻,条件测试不成功
     ? :条件控制变量

练习:求100以内所有正整数的和

 sum=0
 i=1
 while [ $i -le 100 ];do
     let sum+=$i
     let i++
 done

 echo $sum

练习:通过键盘提示用户输入字符,将用户输入的小写字母转换为大写,转换之后,再次提醒,再输再转换;再输入quit退出

     while [[ "$word" != "quit" ]];do
          echo $word | tr "a-z" "A-z"
          read -p "Enter a word again:" word
       done

until :

    bash编程之until循环;
     until 测试条件;do
       循环体
      done

    条件不满足,则循环;否则,退出

bash编程之组合测试条件深入

逻辑与:多个条件同时满足

      [ 条件1 ] && [ 条件2 ]
      [ 条件1 -a 条件2 ]
      [[ 条件1 && 条件2 ]]
      注意:前两个使用单双中括号都可,但&&不允许用于单个中括号中,所有第三者只能用于双中括号中

逻辑或:多个条件满足一个

        [ 条件1 ] || [ 条件2 ]
        [ 条件1 -o 条件2 ]
        [[ 条件1 || 条件2 ]]
        注意 || 不允许出现在单中括号中

得摩根 定律

     !(条件1或者 条件2) = !条件1 并且!条件2
     !(条件1且条件2)=!条件1 或者 !条件2

练习

练习:提示用户输入一个用户名,如果存在,显示用户UID和SHELL信息,如果不存在,显示无此用户;显示完成之后,提示用户再次输入,如果是quit则退出

            #!/bin/bash
        #
  read -p "Enter input name:" username
     while [[ $username != "quit" ]];do
       if id $username &>/dev/null;then
         grep "^$username\>" /etc/passwd | cut -d: -f3,7
       else
         echo "No such user."
       fi
         read -p "Enter a user name again(quit to exit):" username
      done

练习:提供用户输入一个用户名,判断用户是否登录了当前系统;如果没有登录则停止5秒之后再次判断,直到用户登录系统,显示用户来了,而后退出

                    #!/bin/bash
                    #
                    read -p "Enter a user name :" userName

                    while ! id $userName &> /dev/null;do
                      read -p "Enter a user name again :" userName
                    done

                     who | grep "^$userName" &>/dev/null
                     retVal=$?

                    while [ $retVal -ne 0 ];do
                      sleep 5
                      who | grep "^$userName" &>/dev/null
                      retVal=$?
                    done
                    echo "$userName is on"

练习:写一个脚本,完成如下任务

1.提示用户输入一个磁盘设备文件路径不存在或不是一个块设备,则提示用户重新输入,知道输入正确为止,或者输入quit以9为退出码结束脚本

2.提示用户”下面的操作会清空磁盘的数据,并提问是否继续”

如果用户给出字符y或yes,则继续,否则,则提供以8为退出码结束脚本

3、将用户指定的磁盘上的分区清空,而后创建两个分区,大小分别为100M和512M

4格式化这两个分区

5将第一个分区挂载至/mnt/boot目录,第二个分区挂载至/mnt/sysroot目录

#!/bin/bash
     read -p "Enter you dev " devdir
       umonut /mnt/boot
       umonut /mnt/sysroot
    while [[ "$devdir" != "quit" ]];do
        [ -a $devdir ] && [ -b $devdir ]
        if [[ $? -eq 0 ]];then
        read -p "Are you sure[y|yes]: " option
          if [[ "$option" == "y" || "$option" == "yes" ]];then
            dd if=/dev/zero of=$devdir bs=512 count=1 &> /dev/null
            echo -e "n\np\n1\n\n+100M\nn\np\n2\n\n+512M\nw" |fdisk $devdir
            mke2fs -t ext4 ${devdir}1
            mke2fs -t ext4 ${devdir}2
            mount ${devdir}1 /mnt/boot
            mount ${devdir}2 /mnt/sysroot
            echo "${devdir}1 /mnt/boot ext4 default 0 0" >> /etc/fstab
            echo "${devdir}2 /mnt/sysroot ext4 default 0 0" >> /etc/fstab
            exit 7
          else
              exit 8
          fi
        else
        read -p "Enter you dev again: " devdir
       fi
    done

LVM:Logical Volume Manager,将多块设备组合成一个来使用

设备文件

     /dev/卷组名/逻辑卷名
     /dev/mapper/卷组名-逻辑卷名

物理卷命令命令:pv

 pvcreate pvremove psdisplay pvscan pvs pvmove(移动数据)
 pvcreate 物理卷

卷组的管理命令:vg

vgcreate  vgscan vgs vgextend(扩充)、vgremove(删除) vgreduce(移除,缩容)
vgcreate
  -s:pe大小,默认4M

逻辑卷的管理命令:lv

 lvcreate  lvscan lvs lvextend(扩充)、lvremove(删除) vgreduce(移除,缩容)   

 lvcreate

          -n:指定名称
          -L: 指定大小
          -l:%vg|pvs|FREE,打算分配%

逻辑卷扩展的步骤:

   1.先确保扩展的大小;并确保所属的卷组有足够的剩余空间
   2、扩展物理边界
      lvextend -L [+]size /path/to/lv_device
   3、扩展逻辑边界
      resize2fs /path/to/lv_devive

缩减逻辑卷的步骤:

   1、卸载卷,并执行强制检查
     e2fsck -f /path/to/lv_devive
   2、缩减逻辑边界
     resize2fs /path/to/lv_device SIZE
   3、缩减物理边界:
     lvreduce -L [-]size /path/to/lv_device
   4、挂载卷

快照卷:

 也是逻辑卷的一种,提供过去某一时间的元卷的通道
 lvcreate -s  -L Size -n name 卷组名 -p r,rw /path/to/lv_devsive
 -p:访问权限

扩展卷组:

 1.准备要添加的物理卷
 2 扩展卷组:
   添加物理卷至卷组中
   vgextend vg_name /path/to/device

缩减卷组:

1.确定要移除的物理卷的总空间大小,要小于VG当前的可用空间大小
2.将要移除的物理卷上的所有pe移动至其他PV
   pvmove /path/to/pv_device
3.缩减vg
  #vgreduce vg_name /path/to/pv/device

练习:

1、创建一个由两个物理卷组成大小为20G的卷组myvg,要求PE大小16M;而后新建 大小为7G逻辑卷mylv1,要求其文件系统为ext4,块大小为2048,且开机能自动挂载至/users;

    pvcreate /dev/sdb{5,6},vgcreate -s 16M myvg /dev/sdb{5,6},mke2fs -t ext4 -b 2048 /dev/myvg/mylv1

2、新建用户openstack,其家目录为/users/openstack,而后切换至openstack用户,复制一些文件至其家目录中;

3、缩减mylv1至5G大小;而后切换至openstack用户,确保其数据没有丢失;

 e2fsck -f /dev/myvg/mylv1
 resize2fs /dev/myvg/mylv1 5G
 lvreduce -L 5G /dev/myvg/mylv1

4、对mylv1创建快照卷snap-mylv1,并通过其备份数据至/tmp/user.tar.bz2;

   lvcreate -s -n snap-mylv1 -L 200M /dev/myvg/mylv1
tar -jcf /tmp/user.tar.bz2 /tmp/*
时间: 2024-12-12 14:02:58

Linux学习日志(七)的相关文章

Linux学习日志2-vim使用基础

vim是linux操作系统下的一个文本编辑工具,功能非常强大,但刚学习起来比较复杂.vim的所有功能要讲明白得有几百页,在这里只是记录一下vim的一些基本用法. 首先vim打开文件的三种方式: vim +# xxx(#是数字):表示打开xxx文件并将光标定位到指定行. vim -o xx1 xx2 xx3:表示同时打开三个文件,垂直分割显示 vim -O xx1 xx2 xx3:表示同时打开三个文件,水平分割显示 多个文件间跳转:键入ctrl+w后:→向左.←向右.↑向上.↓向下 vim打开文件

Linux学习日志day1——无人值守系统安装DHCP+TFTP+PXE+Kickstar

Linux学习日志day1--无人值守批量系统远程网络安装(DHCP+TFTP+PXE+Kickstar)                                         --作者:江信瀚 服务器环境介绍: 主机名:workstation.example.com 关闭SElinux以及防火墙 虚拟机:VMware(关闭了VMware的DHCP服务) 网卡配置: 静态IP获取! IPV6全部都删除,因为根本用不到 子网IP可以在VMware中设置 8.8.8.8是谷歌的DNS服务器

Linux学习日志1-基本知识

1.冯.诺依曼体系计算机五大组成部件: 1.控制器:控制其他四个部件的运作 2.运算器:负责计算加减乘除 3.存储器:存放运算的数据来源与结果 4.输入设备:接收数据输入存入存储器 5.输出设备:从存储器接收数据输出 2.Linux的起源: 1991年一个芬兰大学生Linus Torvalds参考其老师的教学用操作系统Minix的思想(注意仅仅是思想),自己写了一个操作系统内核,命名为Linux 0.0.1,发布在comp.os.minix新闻组上,正式宣告Linux内核的诞生.从那时起,Lin

linux学习日志

Linux学习日志 基本用户接口模式是shell ,乌班图一般是用 terminal这个终端来输入命令 F11全屏,ctrl+shift+"+" 变大,ctrl+-变小. 命令格式 命令  [参数] [操作对象] cmd    options  opreation cd ~ 回到用户主目录 ls 查看目录下的内容 ./当前目录 ../父目录 ls -l pwd 可以查看当前工作目录 print working directory man 命令名 可以查命令帮助 cd 切换目录 touc

Linux学习日志--文件搜索命令

开头总结: 学习了Linux中的文件搜索命令find和locate,系统搜索命令whereis 和which ,字符串搜索命令grep,find和locate的区别和用法格式,什么是path环境变量以及其好处,whereis和which的用法,区别在于查询系统命令内容的不同,grep和find的区别,为什么要引入通配符? 什么情况下用通配符还是正则表达式? Locate文件搜索命令: 1)格式: Locate [文件名] 2)更新数据库 updatedb 好处: 相对于find命令来说,Loca

linux学习第七天

1. 下面的网络协议中,面向连接的的协议是: A . A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议 2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备. A defaults B sw C rw和ro D noauto 下面就来解释一下这五个参数是什么意思和他们对应的是那些参数, Rw        可读可写 ro            只读 Suid        suid功能 nosuid      没有suid功

Linux学习日志(六)

文件系统 按名称存取是文件系统存在的一个主要目的 定义: 文件系统是一个软件,对磁盘上存在的二进制进行管理 MBR:Master Boot Record 主引导记录 512byte: bootloader:记载器,4 46bytes fat:每16个字节引导一个分区, MBR有效性标记:5A 4个主分区 3主,1扩展分区,引用其他额外的分区表 逻辑分区 硬盘: 存放位置 /dev 硬盘接口: IDE(ATA):并口,每个控制器可接两个硬盘,master/slave,133MB/S /dev/hd

Linux学习日志之Linux常用命令总结

Linux常用命令: 练习3遍以上,命令有点多,建议慢慢查看 一.命令基本格式 1.命令格式: [root(管理员)@localhost(主机名)~]#(超级用户提示符,普通用户提示符是$) adminis /root一级目录用pwd print working directory(打印工作目录)查看 /home/user1/二级目录 [[email protected] ~]# cd /usr/local/src/ 切换当前目录 [[email protected] src]# 命令[选项]

Linux学习第七课-文本处理工具及正则表达式

Linux第七节课 ----------------------------------------------------------------------------------------------------------------------------------------------- 原文地址:http://blog.51cto.com/13873498/2152313