Linux Sysadmin–part1

一、创建一个10G分区,并格式为ext4文件系统;

1要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl

2、挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;

###创建10G分区

~]# fdisk /dev/sdb

Command (m for help): n

Partition type:

p  primary (0 primary, 0 extended, 4 free)

e  extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-83886079, default 2048):

Using default value 2048

Value out of range.

Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): +10G

Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): p

Disk /dev/sdb: 42.9 GB, 42949672960 bytes, 83886080 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x517616e7

Device Boot      Start        End      Blocks  Id  System

/dev/sdb1            2048    20973567    10485760  83  Linux

Command (m for help): w

~]# partx -u /dev/sdb

~]# partx -s /dev/sdb

NR START      END  SECTORS SIZE NAME UUID

1  2048 20973567 20971520  10G

###格式为ext4文件系统,要求其block大小为2048,预留空间百分比为2,卷标为MYDATA

[root@localhost ~]# mke2fs -t ext4 -b 2048 -L MYDATA -m 2 -O has_journal /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=MYDATA

OS type: Linux

Block size=2048 (log=1)

Fragment size=2048 (log=1)

Stride=0 blocks, Stripe width=0 blocks

655360 inodes, 5242880 blocks

104857 blocks (2.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=273678336

320 block groups

16384 blocks per group, 16384 fragments per group

2048 inodes per group

Superblock backups stored on blocks:

16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,

2048000, 3981312

Allocating group tables: done

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: don

###挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;

默认挂载属性包含acl

~]# mkdir -pv /data/mydata

~]# mount -o noexec,noatime /dev/vdb1 /data/mydata

、创建一个大小为1G的swap分区,并创建好文件系统,并启用之

~]# fdisk /dev/sdb

Command (m for help): n

Partition type:

p  primary (1 primary, 0 extended, 3 free)

e  extended

Select (default p): p

Partition number (2-4, default 2): 2

First sector (20973568-83886079, default 20973568):

Using default value 20973568

Last sector, +sectors or +size{K,M,G} (20973568-83886079, default 83886079): +1G

Partition 2 of type Linux and of size 1 GiB is set

Command (m for help): t

Partition number (1,2, default 2): 2

Hex code (type L to list all codes): 82

Changed type of partition ‘Linux’ to ‘Linux swap / Solaris’

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

~]# partx -u /dev/sdb

~]# swapon /dev/sdb2

~]# swapon

NAME      TYPE      SIZE USED PRIO

/dev/dm-1 partition    2G 128K  -1

/dev/sdb2 partition 1024M  0B  -2

三、写一个脚本

(1)、获取并列出当前系统上的所有磁盘设备;

(2)、显示每个磁盘设备上每个分区相关的空间使用信息;

脚本如下:

~]# vim show_D.sh

#!/bin/bash

#

dev=$(ls /dev/ | grep “[hsv]d[a-z]”)

echo -e “All of you disk devices is \n$dev”

dev_Fs=$(df -h | grep “Filesystem”)

dev_Show=$(df -lh | grep “^/dev”)

echo -e The “Disk partition information\n$dev_Fs \n$dev_Show”

~]#chmod u+x show_D.sh

~]# ./show_D.sh

All of you disk devices is

sda

sda1

sda2

sdb

sdb1

sdb2

The Disk partition information

Filesystem          Size  Used Avail Use% Mounted on

/dev/mapper/cl-root  50G  5.4G  45G  11% /

/dev/sda1          1014M  173M  842M  18% /boot

/dev/mapper/cl-home  67G  36M  67G  1% /home

/dev/sr0            7.8G  7.8G    0 100% /run/media/ronny2/CentOS 7 x86_64

/dev/sdb1            9.8G  13M  9.6G  1% /data/mydata

四、总结RAID的各个级别及其组合方式和性能的不同

RAID:独立硬盘冗余阵列(RAID,RedundantArray ofIndependentDisks),旧称廉价磁盘冗余阵列(RedundantArray ofInexpensiveDisks),简称磁盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说,看起来就像一个单独的硬盘或逻辑存储单元。分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60。

RAID 0[编辑]

Linux Sysadmin--part1

RAID 0亦称为带区集。它将两个以上的磁盘并联起来,成为一个大容量的磁盘。在存放数据时,分段后分散存储在这些磁盘中,因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失,危险程度与JBOD相当。可用空间:N*min(S1,S2,…)

RAID 1[编辑]

Linux Sysadmin--part1

两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID 0相同。另外写入速度有微小的降低。只要一个磁盘正常即可维持运作,可靠性最高。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID中磁盘利用率最低的一个级别。如果用两个不同大小的磁盘建RAID 1,可用空间为较小的那个磁盘,较大的磁盘多出来的空间也可以分区成一个区来使用,不会造成浪费。可用空间:1*min(S1,S2,…)

RAID 2[编辑]

Linux Sysadmin--part1

这是RAID 0的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分区为独立的比特,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,RAID2最少要三台磁盘驱动器方能运作。

RAID 3[编辑]

Linux Sysadmin--part1

采用Bit-interleaving(数据交错存储)技术,它需要通过编码再将数据比特分割后分别存在硬盘中,而将同比特检查后单独存在一个硬盘中,但由于数据内的比特分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用。

RAID 4[编辑]

Linux Sysadmin--part1

它与RAID 3不同的是它在分区时是以区块为单位分别存在硬盘中,但每次的数据访问都必须从同比特检查的那个硬盘中取出对应的同比特数据进行核对,由于过于频繁的使用,所以对硬盘的损耗可能会提高。(块交织技术,Block interleaving)

RAID 5[编辑]

Linux Sysadmin--part1

RAID Level 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分区)技术。RAID 5至少需要三块硬盘,RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。可用空间:(N-1)*min(S1,S2,…)

混合RAID

JBOD[编辑]

Linux Sysadmin--part1

JBOD( Just a Bunch Of Disks)在分类上,JBOD并不是RAID的档次。由于并没有规范,市场上有两类主流的做法使用单独的链接端口如SATA、USB或1394同时控制多个各别独立的硬盘,使用这种模式通常是较高级的设备,还具备有RAID的功能,不需要依靠JBOD达到合并逻辑扇区的目的。只是将多个硬盘空间合并成一个大的逻辑硬盘,没有错误备援机制。数据的存放机制是由第一颗硬盘开始依序往后存放,即操作系统看到的是一个大硬盘(由许多小硬盘组成的)。但如果硬盘损毁,则该颗硬盘上的所有数据将无法救回。若第一颗硬盘损坏,通常无法作救援(因为大部分文件系统将磁盘分区表(partition table)存在磁盘前端,即第一颗),失去磁盘分区表即失去一切数据,若遭遇磁盘阵列数据或硬盘出错的状况,危险程度较RAID 0更剧。它的好处是不会像RAID,每次访问都要读写全部硬盘。但在部分的JBOD数据恢复实践中,可以恢复未损毁之硬盘上的数据。同时,因为每次读写操作只作用于单一硬盘,JBOD的传输速率与I/O表现均与单颗硬盘无异。

RAID 10/01[编辑]

Linux Sysadmin--part1

Linux Sysadmin--part1

RAID 10是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。

RAID 01则是跟RAID 10的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。

当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。如果以六个硬盘建RAID 01,镜射再用三个建RAID 0,那么坏一个硬盘便会有三个硬盘离线。因此,RAID 10远较RAID 01常用,零售主板绝大部分支持RAID 0/1/5/10,但不支持RAID 01。

RAID 50[编辑]

Linux Sysadmin--part1

RAID 50

RAID 5与RAID 0的组合,先作RAID 5,再作RAID 0,也就是对多组RAID 5彼此构成Stripe访问。由于RAID 50是以RAID 5为基础,而RAID 5至少需要3颗硬盘,因此要以多组RAID 5构成RAID 50,至少需要6颗硬盘。以RAID 50最小的6颗硬盘配置为例,先把6颗硬盘分为2组,每组3颗构成RAID 5,如此就得到两组RAID 5,然后再把两组RAID 5构成RAID 0。RAID 50在底层的任一组或多组RAID 5中出现1颗硬盘损坏时,仍能维持运作,不过如果任一组RAID 5中出现2颗或2颗以上硬盘损毁,整组RAID 50就会失效。RAID 50由于在上层把多组RAID 5构成Stripe,性能比起单纯的RAID 5高,容量利用率比RAID5要低。比如同样使用9颗硬盘,由各3颗RAID 5再组成RAID 0的RAID 50,每组RAID 5浪费一颗硬盘,利用率为(1-3/9),RAID 5则为(1-1/9)。

RAID 60[编辑]

Linux Sysadmin--part1

raid 60

RAID 6与RAID 0的组合:先作RAID 6,再作RAID 0。换句话说,就是对两组以上的RAID 6作Stripe访问。RAID 6至少需具备4颗硬盘,所以RAID 60的最小需求是8颗硬盘。

由于底层是以RAID 6组成,所以RAID 60可以容许任一组RAID 6中损毁最多2颗硬盘,而系统仍能维持运作;不过只要底层任一组RAID 6中损毁3颗硬盘,整组RAID 60就会失效,当然这种情况的概率相当低。

比起单纯的RAID 6,RAID 60的上层通过结合多组RAID 6构成Stripe访问,因此性能较高。不过使用门槛高,而且容量利用率低是较大的问题。

五、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;

~]# mdadm -C /dev/md0 -a yes -n 2 -l 1 -x 1 -c 128 /dev/sd{b,c,d}

6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能

# mdadm -C /dev/md0 -n 3 -l 5 -c 256 /dev/sd{b,c,d}

# mkfs.ext4 /dev/md0

# mkdir -p /backup

7、写一个脚本

(1) 接受一个以上文件路径作为参数;

(2) 显示每个文件拥有的行数;

(3) 总结说明本次共为几个文件统计了其行数;

#!/bin/bash

#description:Count the number of files

#date:2017-08-29

#Author:Ronny

if [ $# -lt 1 ] ;then

echo “Wrong is numher of parameter.”

exit 1

else

for i in $*;do

wc -l $i

done fi

echo “Counts the number of rows for $# files.

~]# chmod u+x fileLines_sum.sh

~]# ./fileLines_sum.sh “/tmp/mmio” “/tmp/grub2.cfg” “/tmp/crontab.hxy509”

45 /tmp/mmio

12 /tmp/grub2.cfg

3 /tmp/crontab.hxy509

“Counts the number of rows for 3 files.

#路径参数:

#A.输入的路径参数必须是绝对地址;

#B.路径参数不能以斜杠结束;

#C.路径参数中不能含有非法字符;

#D.路径是否存在;

#E.路径是否有读写权限。

8、写一个脚本

(1)传递两个以上字符串当作用户名;

(2)创建这些用户;且密码同用户名;

(3)总结说明共创建了几个用户;

#!/bin/bash

#description:

#date:

#Author:

declare -i sum=0

for i in $*;do

if [ $# -lt 2 ];then

echo “Please ensure two or more than two username”

exit 1

elif id $i &> /dev/null;then

echo “The user already exist”

exit 2

else

useradd $i

echo “$i” | passwd –stdin $i

let sum++

fi

done

echo “Total add user $sum”

9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和

#!/bin/bash

#

declare -i idsum=0

for i in $(seq 1 20);do

useradd visitor$i

id=$(id -u visitor$i)

idsum=$[$idsum+$id]

done

echo “vistor1-vistor20 idsum:$idsum”

~]# chmod u+x sum_Id.sh

~]# ./sum_Id.sh

vistor1-vistor20 idsum:80510

原创文章,作者:N27_ronny,如若转载,请注明出处:http://www.178linux.com/86251

(0)
N27_ronnyN27_ronny
上一篇 2017-09-04
下一篇 2017-09-04

相关推荐

  • 浅谈HTTP协议以及httpd的十八般武艺

      初识HTTP协议                HTTP(hyper text transfer protocal)作为互联网应用最广泛的协议,任何一个运维人员都无法回避它,HTTP的目的就是提供一种发布和…

    Linux干货 2016-02-14
  • tom猫—–(Tomcat详解)

    目录 安装tomcat tomcat目录结构及配置文件构成以及主配置文件server.xml ,tomcat中的组件 实现反代tomcat的方法 nginx+tomcat cluster http(mod_porxy_http)+tomcat cluster http(mod_porxy_ajp)+tomcat cluster http(mod_jk)+to…

    2017-11-16
  • grep、egrep、fgrep 正则表达式详解

    大纲一、grep分类       –1.1基本定义       –1.2常用选项       –1.3不常用选项二、正则表达式       –2.1基本…

    Linux干货 2015-07-01
  • 用户相关属性权限、正则表达式的应用(网络班21期第四周博客)

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。          mkdir /home/tuser1        &n…

    Linux干货 2016-08-02
  • 系统日志和loganalyzer

    作为运维人员,熟悉系统日志是一项基本功。本文将介绍centos6的系统日志rsyslog及loganalyzer工具。 简介 系统日志:记录历史事件,通常都是按时间顺序将发生的事件予以记录,linux上的日志分为syslogd(系统进程相关日志)和klogd(内核事件日志) centos5:syslog    缺点:不能进行并行数据存储,…

    Linux干货 2016-03-20
  • Linux的获取系统的帮助信息及man文档说明

    Linux的获取系统的帮助信息及man文档说明 帮助命令有内部命令帮助和外部命令帮助两种 内部命令获得帮助使用下面命令 # help COMMAND 例如: [root@localhost ~]# type type type is a shell builtin [root@localhost ~]# help type type: type [-afpt…

    2018-02-28