zoukankan      html  css  js  c++  java
  • Linux云自动化运维第十课

    第三单元  系统延迟及定时机制

    一、计划定期任务

    1.at 命令可以指定某一任务在将来的特定时间运行。该作业可能是一次备份、对您系统的检查或者特定时间发送的通知。那些需要花费很长时间才可完成的作业正适合 at 命令。仅需使用 at 命令将任务设置为在一分钟或两分钟之后运行。然后您便可以安全注销 , 因为该任务会在与 shell 会话断开连接的情况下运行

    1)at 命令必须指定任务应运行的时间。该指定可以是具体时间和 / 或日期 ( 例如星期一 , 10:00pm 或 7 月 15 日 ) 。也可以是当前时间的相对时间 ( 现在时间加上 5 分钟 , 现在时间加上 3 天或 4:00pm 加上1 周 ) 通过添加其他选项 , 您可以在任务完成是发送邮件 ( -m ), 或者从文件中读取任务 ( -f 文件 ), 而无需通过标准输入进行

    2)在键入 at 命令行之后 , 按 Enter 并继续键入作业中包含的其他命令。任务可由多个命令组成。在完成键入要运行的命令时 , 在单独出现的一行中按 Ctrl+d 完成任务

    2.at 命令示例

    [root@serverX ~]# at now +2 min

    at> echo "Hello from the at command" >/dev/pts/0

    at> <EOT>

    job 4 at 2011-08-10 14:05

    ps:在将某一 at 作业设置为运行之后 , 可以通过使用 atq 命令列出作业编号以及次数。若要查看作业中所包含的命令 , 键入 at -c #( # 号为作业编号 ) 。键入Atrm # ( # 号为作业编号 ) 则是删除指定作业。

    eg:[root@localhost ~]# date    ###现在时间21:13

    Wed Apr  5 21:13:40 EDT 2017

    [root@localhost ~]# touch /mnt/file    ###在/mnt下建立一个文件

    [root@localhost ~]# at 21:15   ###指定在21:15完成以下命令

    at> rm -fr /mnt/*    ###删除/mnt下的所有文件

    at> <EOT>    ###ctrl+d退出

    job 1 at Wed Apr  5 21:15:00 2017

    [root@localhost ~]# at -l    ###列出at任务

    1 Wed Apr  5 21:15:00 2017 a root

    [root@localhost ~]# at -l    ###21:15后任务执行完毕

    [root@localhost ~]# touch /mnt/file

    [root@localhost ~]# at 21:17

    at> rm -fr /mnt/*

    at> <EOT>

    job 2 at Wed Apr  5 21:17:00 2017

    [root@localhost ~]# at -l

    2 Wed Apr  5 21:17:00 2017 a root

    [root@localhost ~]# atrm 2   ###撤销任务2

    [root@localhost ~]# at -l

    [root@localhost ~]# at 21:18

    at> date

    at> <EOT>

    job 3 at Wed Apr  5 21:18:00 2017

    [root@localhost ~]# mail

    No mail for root

    [root@localhost ~]# at -l

    3 Wed Apr  5 21:18:00 2017 a root

    [root@localhost ~]# mail   ###有输出的任务可在执行完毕后用mail查看输出结果

    Heirloom Mail version 12.5 7/5/10.  Type ? for help.

    "/var/spool/mail/root": 1 message 1 new

    >N  1 root                  Wed Apr  5 21:18  14/520   "Output from your job "

    & 1

    Message  1:

    From root@localhost.localdomain  Wed Apr  5 21:18:01 2017

    Return-Path: <root@localhost.localdomain>

    X-Original-To: root

    Delivered-To: root@localhost.localdomain

    Subject: Output from your job        3

    To: root@localhost.localdomain

    Date: Wed,  5 Apr 2017 21:18:00 -0400 (EDT)

    From: root@localhost.localdomain (root)

    Status: R

    Wed Apr  5 21:18:00 EDT 2017   ###输出结果显示

    & q   ###q退出

    Held 1 message in /var/spool/mail/root

    [root@localhost ~]# at now+30day   ###执行时间是30天后

    at> poweroff   ###关机

    at> <EOT>

    job 4 at Fri May  5 21:18:00 2017

    您在 /var/spool/mail/root 中有邮件

    [root@localhost ~]# at -l

    4 Fri May  5 21

    [root@localhost ~]# vim /etc/at.deny  ###用户黑名单,名单上的用户皆无法执行at命令

    [root@localhost ~]# cat /etc/at.deny  ###student用户被禁止

    student

    [root@localhost ~]# su - student

    上一次登录:Wed Apr  5 21:30:12 EDT 2017pts/2 上

    [student@localhost ~]$ at 21:50   ###无法执行,无权限

    You do not have permission to use at.

    [student@localhost ~]$ exit

    logout

    [root@localhost ~]# vim /etc/at.allow   ###用户白名单,只有名单上的用户才能执行at命令

    [root@localhost ~]# cat /etc/at.allow   ###名单为空,所有用户都被禁止

    [root@localhost ~]# su - student

    上一次登录:Wed Apr  5 21:32:33 EDT 2017pts/2 上

    [student@localhost ~]$ at 21:58   ###无法执行,无权限

    You do not have permission to use at

    [student@localhost ~]$ exit

    logout

    [root@localhost ~]# vim /etc/at.allow

    [root@localhost ~]# cat /etc/at.allow    ###仅student用户可以执行at命令,其他用户都被禁止

    student

    [root@localhost ~]# su - student

    上一次登录:Wed Apr  5 21:31:17 EDT 2017pts/2 上

    [student@localhost ~]$ at 21:55   ###student用户可执行at命令

    at> exit

    at> <EOT>

    job 5 at Wed Apr  5 21:55:00 2017

    [student@localhost ~]$ atrm 5

    [student@localhost ~]$ exit

    logout

    二、管理定期任务

    1.cron 设备管理必须按计划定期重复运行的程序。后台程序crond 每分钟唤醒一次 , 以运行计划的任何任务用户使用crontab 命令计划个人任务。系统管理员可以在系统范围配置文件中设置任务

    2.单个用户使用称为 crontab ( cron 表 ) 的文本文件登记任务

    1)crontab -l 列出文件

    2)crontab -r 删除文件

    3)crontab -e 编辑文件

    4)crontab -e 使用默认编辑器是 vi

    3.corn 时间表示方式

    1* 2* 3* 4* 5* command

    – 1*---------- 分钟

    – 2*---------- 小时

    – 3*---------- 天

    – 4*---------- 月

    – 5*---------- 周

    4.crontab 注意事项

    1)属于系统的任务通常保存在 /etc/crontab 文件中而不是使用 crontab -e 编辑保存在个人文件中。更好的做法是用文本编辑器创建 crontab 文件并保存到 /etc/cron.d 中 ( 避免更新系统软件包 cronie 时出现问题 ) 。/etc/cron.d/crontab 文件在日期说明后另加一个字段 , 表示将运行作业的用户

    2)对于需要每天、每周或每月运行一次的脚本 , 可以直接将其设置为可执行文件 , 并保存在 /etc/cron.{daily,weekly,monthly} 中相应目录下。这些任务由/etc/anacrontab 配置的系统 anacron 服务运行 anacron是 cron 的集成组件 , 用于更好地管理作业 , 并确保在作业因计算机关闭而未运行的情况下 , 在系统引导后运行作业

    5.cron 权限设定

    1)在系统中默认所有用户可以设定 cron

    2)用户黑名单

    – /etc/cron.deny

    3)用户白名单

    – /etc/cron.allow

    6.系统中的临时文件

    1)系统中服务在正常运行时会产生临时文件

    2)在系统中 /usr/lib/tmpfiles.d/ 标实服务的临时文件存放位置

    3)文件示例

    #vim /usr/lib/tmpfiles.d/test.conf

    d /run/test 0700 root root 5s

    7.控制系统中的临时文件

    #systemd-tmpfiles

    --create /usr/lib/tmpfiles.d/test.conf

    --clean /usr/lib/tmpfiles.d/test.conf

    eg:[root@localhost ~]# systemctl status crond.service   ###检查crond服务状态

    crond.service - Command Scheduler

       Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)

       Active: active (running) since Wed 2017-04-05 21:04:38 EDT; 54min ago   ###正在运行

     Main PID: 531 (crond)

       CGroup: /system.slice/crond.service

               └─531 /usr/sbin/crond -n

    Apr 05 21:04:38 localhost systemd[1]: Started Command Scheduler.

    Apr 05 21:04:38 localhost crond[531]: (CRON) INFO (RANDOM_DELAY will be sca....)

    Apr 05 21:04:39 localhost crond[531]: (CRON) INFO (running with inotify support)

    Apr 05 21:50:01 localhost crond[531]: (root) RELOAD (/var/spool/cron/root)

    Apr 05 21:53:01 localhost crond[531]: (root) RELOAD (/var/spool/cron/root)

    Apr 05 21:57:01 localhost crond[531]: (root) RELOAD (/var/spool/cron/root)

    Hint: Some lines were ellipsized, use -l to show in full.

    [root@localhost ~]# crontab -u root -e   ###编辑文件-e

    crontab: installing new crontab

    [root@localhost ~]# crontab -u root -l   ###列出文件-l

    * * * * * rm -fr /mnt/*    ###每隔一分钟,执行一次清空/mnt目录命令

    [root@localhost ~]# cat /var/spool/cron/root

    * * * * * rm -fr /mnt/*

    [root@localhost ~]# touch /mnt/file{1..5}   ###mnt目录新建文件

    [root@localhost ~]# ls /mnt/

    file1  file2  file3  file4  file5

    [root@localhost ~]# ls /mnt/   ###一分钟后,mnt目录内文件被清空

    [root@localhost ~]# vim /etc/cron.d/student   ###通过文件,执行

    [root@localhost ~]# cat /etc/cron.d/student

    * * * * * root rm -fr /mnt/*

    [root@localhost ~]# touch /mnt/file

    [root@localhost ~]# ls /mnt   ###一分钟后,mnt目录内文件被清空

    [root@localhost ~]# echo "* * * * * root rm -fr /mnt/*" >/etc/cron.d/student    ###用echo写入文件执行

    [root@localhost ~]# cat /etc/cron.d/student

    * * * * * root rm -fr /mnt/*

    [root@localhost ~]# touch /mnt/file

    [root@localhost ~]# ls /mnt   ###一分钟后,mnt目录内文件被清空

    [root@localhost ~]# su - student

    上一次登录:Wed Apr  5 21:34:32 EDT 2017pts/2 上

    [student@localhost ~]$ crontab -e   ###student用户可以执行crontab -e进行编辑

    no crontab for student - using an empty one

    crontab: no changes made to crontab

    [student@localhost ~]$ exit

    logout

    [root@localhost ~]# vim /etc/cron.deny    ###用户黑名单,名单上的用户无法执行crontab -e进行编辑

    [root@localhost ~]# cat /etc/cron.deny    ###student用户在黑名单上

    student

    [root@localhost ~]# su - student

    上一次登录:Wed Apr  5 22:10:10 EDT 2017pts/2 上

    [student@localhost ~]$ crontab -e   ###编辑失败,权限被禁止

    You (student) are not allowed to use this program (crontab)

    See crontab(1) for more information

    [student@localhost ~]$ exit

    logout

    [root@localhost ~]# vim /etc/cron.allow   ###用户白名单,只有名单上的用户可以执行crontab -e进行编辑

    [root@localhost ~]# cat /etc/cron.allow   ###student用户在白名单上

    student

    [root@localhost ~]# su - student

    上一次登录:Wed Apr  5 22:12:04 EDT 2017pts/2 上

    [student@localhost ~]$ crontab -e   ###student在白名单上,可以编辑

    no crontab for student - using an empty one

    crontab: no changes made to crontab

    [student@localhost ~]$ exit

    logout

    [root@localhost ~]# su - westos

    [westos@localhost ~]$ crontab -e   ###westos用户没在白名单上,无编辑权限

    You (westos) are not allowed to use this program (crontab)

    See crontab(1) for more information

    [westos@localhost ~]$ exit

    logout

    [root@localhost tmpfiles.d]# vim student.conf   ###系统中的临时文件

    [root@localhost tmpfiles.d]# cat student.conf

    d /mnt/westos 1777 root root 10s    ###作用对象/mnt/westos目录,时长10s

    [root@localhost tmpfiles.d]# systemd-tmpfiles --create /lib/tmpfiles.d/*

    [root@localhost tmpfiles.d]# touch /mnt/westos/file     ###两个文件的创建相差几秒

    [root@localhost tmpfiles.d]# touch /mnt/westos/file1

    [root@localhost tmpfiles.d]# systemd-tmpfiles --clean /lib/tmpfiles.d/*   ###第一次清除的是创建时长超过10s的file文件,file1创建时长不超过10s,不会被清除

    [root@localhost tmpfiles.d]# systemd-tmpfiles --clean /lib/tmpfiles.d/*   ###第二次清除,此时file1文件创建已超过10s,会被清除

    ps:0磁道1扇区512字节(446+64+2):446-mbr;64-mpt;2-55aa磁盘有效标识。主分区,扩展分区,逻辑分区

    第四单元   管理系统中的简单分区和文件系统

    一、简单分区和文件系统

    1.存储是每个计算机系统的基本需求。 Red Hat Enterprise Linux 提供了一些强大的工具 , 它们能在大量的场景中管理多种类型的存储设备

    2.disk 是用于管理磁盘分区的实用程序。您可以通过选择 -l选项和指定磁盘名称 ( fdisk -cul /dev/vda ) 运行该实用程序 , 以查看磁盘及其分区。您可以通过交互式地运行该实用程序 , 并选择相应的菜单选项( fdisk -cu /dev/vda ) 进行更改。 -c 禁用旧的 DOS 兼容模式 , -u 以扇区 ( 而不是柱面 , 已经过时 ) 的格式显示输出

    二、查看系统设备信息

    1.fdisk -l   ###显示系统中所有可以使用的设备信息

    2.blkid   ###显示系统正在使用的设备 id

    eg:[root@localhost ~]# fdisk -l

    磁盘 /dev/vda:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x00013f3e

       设备 Boot      Start         End      Blocks   Id  System

    /dev/vda1   *        2048    20970332    10484142+  83  Linux

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    [root@localhost ~]# blkid

    /dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"

    /dev/vdb: PTTYPE="dos"

    三、创建新分区

    eg:[root@localhost tmpfiles.d]# fdisk /dev/vdb   ###创建新的分区

    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。

    使用写入命令前请三思。

    Device does not contain a recognized partition table

    使用磁盘标识符 0x5119a134 创建新的 DOS 磁盘标签。

    命令(输入 m 获取帮助):m

    命令操作

       a   toggle a bootable flag

       b   edit bsd disklabel

       c   toggle the dos compatibility flag

       d   delete a partition   ###删除分区

       g   create a new empty GPT partition table

       G   create an IRIX (SGI) partition table

       l   list known partition types   ###列出系统可用的分区类型

       m   print this menu

       n   add a new partition    ###新建分区

       o   create a new empty DOS partition table

       p   print the partition table   ###显示分区

       q   quit without saving changes   ###退出

       s   create a new empty Sun disklabel

       t   change a partition's system id   ###修改分区功能id,类型

       u   change display/entry units

       v   verify the partition table

       w   write table to disk and exit   ###保存更改到分区表中

       x   extra functionality (experts only)

    命令(输入 m 获取帮助):n    ###新建分区

    Partition type:

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

       e   extended

    Select (default p): p   ###p,主分区;e,扩展分区

    分区号 (1-4,默认 1):1

    起始 扇区 (2048-20971519,默认为 2048):2048

    Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+1G   ###分区大小设置为1G

    分区 1 已设置为 Linux 类型,大小设为 1 GiB

    命令(输入 m 获取帮助):p   ###显示分区

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    /dev/vdb1            2048     2099199     1048576   83  Linux   ###分区建立成功

    命令(输入 m 获取帮助):wq   ###保存更改并退出

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    [root@localhost tmpfiles.d]# partprobe   ###同步到磁盘

    [root@localhost tmpfiles.d]# cat /proc/partitions    ####查看分区

    major minor  #blocks  name

     253        0   10485760 vda

     253        1   10484142 vda1

     253       16   10485760 vdb

     253       17    1048576 vdb1

    [root@localhost tmpfiles.d]# mkfs.xfs /dev/vdb1   ###格式化,创建文件系统

    meta-data=/dev/vdb1              isize=256    agcount=4, agsize=65536 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0

    data     =                       bsize=4096   blocks=262144, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal log           bsize=4096   blocks=2560, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    [root@localhost tmpfiles.d]# blkid   ###显示系统正在使用的设备

    /dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"

    /dev/vdb1: UUID="6109cc6f-6c9e-4e65-823e-806ed0329fe6" TYPE="xfs"

    [root@localhost tmpfiles.d]# mount /dev/vdb1 /mnt/   ###将刚新建的分区挂载到/mnt下,关机重启后,需重新挂载

    [root@localhost tmpfiles.d]# df   ###查看挂载点

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3809408 6664492   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17092  925568    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    /dev/vdb1       1038336   32928 1005408    4% /mnt

    [root@localhost tmpfiles.d]# umount /mnt/   ###卸载

    [root@localhost tmpfiles.d]# df

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3809408 6664492   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17092  925568    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    [root@localhost tmpfiles.d]# fdisk /dev/vdb   ###删除分区

    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。

    使用写入命令前请三思。

    命令(输入 m 获取帮助):d   ###删除分区1

    已选择分区 1

    分区 1 已删除

    命令(输入 m 获取帮助):p

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System   ###显示分区已被删除

    命令(输入 m 获取帮助):wq

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    [root@localhost tmpfiles.d]# partprobe    ###同步到磁盘

    [root@localhost tmpfiles.d]# cat /proc/partitions    ###查看挂载信息,新建分区已不存在

    major minor  #blocks  name

     253        0   10485760 vda

     253        1   10484142 vda1

     253       16   10485760 vdb

    四、文件系统比较

    1.ext4 是 Red Hat Enterprise Linux 6 的标准文件系统。它非常强大可靠 , 具有多项可以提高现代工作量处理性能的功能

    2.ext2 是常用于 Linux 中的较旧的文件系统。它简单可靠 , 非常适合小型存储设备 , 但是效率低于 ext4

    3.vfat 支持包括一系列相关文件系统 ( VFAT/FAT16 和FAT32 ), 这些文件系统针对较旧版本的 Microsoft Windows开发 , 在大量的系统和设备上受支持

    4.xfs 在 Red Hat Enterprise Linux 7 的标准文件系统其具备数据完全性 、性能稳定、扩展性强( 18eb )、传输速率高( 7G/s )

    五、文件系统创建示例

    # mkfs -t ext4|xfs /dev/vda3

    # blkid /dev/vda3

    /dev/vda3: UUID="cffde973-ab02-4b52-a09c-2a7ee610255c"

    TYPE="ext4"

    # mkdir /test

    /etc/fstab 添加一个条目 :

    UUID="cffde973-ab02-4b52-a09c-2a7ee610255c" /test [ext4|xfs] defaults

    1 2

    测试挂载 :

    # mount /test

    删除现有文件系统

    1. 通过使用 umount /mountpoint 卸载文件系统。

    2. 在 /etc/fstab 中删除相应条目。

    3. 删除挂载点目录 : rmdir /mountpoint

    eg:[root@localhost tmpfiles.d]# mkfs.xfs /dev/vdb1 -f   ###给新建的vdb1分区格式化,创建文件系统

    meta-data=/dev/vdb1              isize=256    agcount=4, agsize=65536 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0

    data     =                       bsize=4096   blocks=262144, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal log           bsize=4096   blocks=2560, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    [root@localhost tmpfiles.d]# mount /dev/vdb1 /mnt/   ###挂载

    [root@localhost tmpfiles.d]# df

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3809456 6664444   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17092  925568    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    /dev/vdb1       1038336   32928 1005408    4% /mnt   ###已挂载上

    [root@localhost tmpfiles.d]# vim /etc/fstab

    [root@localhost tmpfiles.d]# cat /etc/fstab    ###编辑文件系统配置文件,永久自动挂载

    #

    # /etc/fstab

    # Created by anaconda on Wed May  7 01:22:57 2014

    #

    # Accessible filesystems, by reference, are maintained under '/dev/disk'

    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

    #

    UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1

    /dev/vdb1 /mnt xfs defaults 0 0

    [root@localhost tmpfiles.d]# df

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3809476 6664424   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17092  925568    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    /dev/vdb1       1038336   32928 1005408    4% /mnt

    [root@localhost tmpfiles.d]# umount /mnt/   ###卸载

    [root@localhost tmpfiles.d]# df

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3809456 6664444   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17092  925568    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    [root@localhost tmpfiles.d]# mount -a  ###刷新

    [root@localhost tmpfiles.d]# df   ###已经挂载上

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3809456 6664444   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17092  925568    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    /dev/vdb1       1038336   32928 1005408    4% /mnt

    [root@localhost tmpfiles.d]# vim /etc/fstab

    [root@localhost tmpfiles.d]# cat /etc/fstab    ###将刚才添加的删除

    #

    # /etc/fstab

    # Created by anaconda on Wed May  7 01:22:57 2014

    #

    # Accessible filesystems, by reference, are maintained under '/dev/disk'

    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

    #

    UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1

    [root@localhost tmpfiles.d]# df

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3809476 6664424   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17092  925568    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    /dev/vdb1       1038336   32928 1005408    4% /mnt

    [root@localhost tmpfiles.d]# umount /mnt/   ###卸载

    [root@localhost tmpfiles.d]# df

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3809476 6664424   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17092  925568    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    [root@localhost tmpfiles.d]# fdisk /dev/vdb   ###删除分区

    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。

    使用写入命令前请三思。

    命令(输入 m 获取帮助):d

    已选择分区 1

    分区 1 已删除

    命令(输入 m 获取帮助):p

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    命令(输入 m 获取帮助):wq

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    [root@localhost tmpfiles.d]# partprobe     

    [root@localhost tmpfiles.d]# cat /proc/partitions

    major minor  #blocks  name

     253        0   10485760 vda

     253        1   10484142 vda1

     253       16   10485760 vdb

    [root@localhost tmpfiles.d]#

    六、swap 交换分区

    换空间或交换区是磁盘驱动器上的空间 , 用作当前未使用部分内存的溢出。这样 , 系统就能在主内存中留出空间用于储存当前正在处理的数据 , 并在系统面临主内存空间不足的风险时提供应急溢出

    七、管理交换分区

    1.使用 fdisk 创建新分区。此外 , 在用 fdisk 保存更改之前 , 将分区类型更改为 “ 0x82 Linux Swap”

    2.mkswap /dev/vdaN 会准备好将分区用作交换区

    3.blkid /dev/vdaN 将确定 UUID

    4.将新交换空间添加到 /etc/fstab :UUID=uuid swap swap defaults 0 0

    5.swapon -a 将激活新交换区

    6.swapon -s 将显示当前交换区的状态

    7.swapoff /dev/vdaN 将停用该特定交换区

    eg:[root@localhost tmpfiles.d]# fdisk /dev/vdb   ###创建新分区

    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。

    使用写入命令前请三思。

    命令(输入 m 获取帮助):n

    Partition type:

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

       e   extended

    Select (default p): p

    分区号 (1-4,默认 1):

    起始 扇区 (2048-20971519,默认为 2048):

    将使用默认值 2048

    Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+1G

    分区 1 已设置为 Linux 类型,大小设为 1 GiB

    命令(输入 m 获取帮助):t   ###修改标签

    已选择分区 1

          

    Hex 代码(输入 L 列出所有代码):82   ###82 Linux swap

    已将分区“Linux”的类型更改为“Linux swap / Solaris”

    命令(输入 m 获取帮助):p

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    /dev/vdb1            2048     2099199     1048576   82  Linux swap / Solaris

    命令(输入 m 获取帮助):wq

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    [root@localhost tmpfiles.d]# partprobe

    [root@localhost tmpfiles.d]# mkswap /dev/vdb1    ###mkswap /dev/vdb1 会准备好将分区用作交换区

    mkswap: /dev/vdb1: warning: wiping old xfs signature.

    正在设置交换空间版本 1,大小 = 1048572 KiB

    无标签,UUID=b54c8fe3-5a3c-46dc-9196-4e4a1ffe3ab6

    [root@localhost tmpfiles.d]# swapon -a /dev/vdb1    ###swapon -a 将激活新交换区

    [root@localhost tmpfiles.d]# swapon -s    ###swapon -s 将显示当前交换区的状态

    文件名 类型 大小 已用 权限

    /dev/vdb1                               partition 1048572 0 -1

    [root@localhost tmpfiles.d]# vim /etc/fstab

    [root@localhost tmpfiles.d]# cat /etc/fstab    ###将新交换空间添加到/etc/fstab :UUID=uuid swap swap defaults 0 0

    #

    # /etc/fstab

    # Created by anaconda on Wed May  7 01:22:57 2014

    #

    # Accessible filesystems, by reference, are maintained under '/dev/disk'

    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

    #

    UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1

    /dev/vdb1 swap swap defaults 0 0

    [root@localhost tmpfiles.d]# swapon -s   ###显示交换区状态

    文件名 类型 大小 已用 权限

    /dev/vdb1                               partition 1048572 0 -1

    [root@localhost tmpfiles.d]# swapoff /dev/vdb1   ###swapoff /dev/vdb1 将停用该特定交换区

    [root@localhost tmpfiles.d]# swapon -s   ###交换区不存在

    [root@localhost tmpfiles.d]# swapon -a   ###激活

    [root@localhost tmpfiles.d]# swapon -s   ###交换区出现

    文件名 类型 大小 已用 权限

    /dev/vdb1                               partition 1048572 0 -1

    [root@localhost tmpfiles.d]# vim /etc/fstab

    [root@localhost tmpfiles.d]# cat /etc/fstab   ###删除添加的文件

    #

    # /etc/fstab

    # Created by anaconda on Wed May  7 01:22:57 2014

    #

    # Accessible filesystems, by reference, are maintained under '/dev/disk'

    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

    #

    UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 /                       xfs     defaults        1 1

    [root@localhost tmpfiles.d]# swapoff /dev/vdb1   ###停用

    [root@localhost tmpfiles.d]# fdisk /dev/vdb   ###删除文件

    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。

    使用写入命令前请三思。

    命令(输入 m 获取帮助):d

    已选择分区 1

    分区 1 已删除

    命令(输入 m 获取帮助):p

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    命令(输入 m 获取帮助):wq

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    [root@localhost tmpfiles.d]# partprobe

    [root@localhost tmpfiles.d]#

    八、磁盘加密保护

    1.LUKS ( Linux 统一密钥设置 ) 是标准的设备加密格式

    2.LUKS 可以对分区或卷进行加密

    3.必须首先对加密的卷进行解密 , 才能挂载其中的文件系统

    九、创建新加密的卷

    1.使用 fdisk 创建新分区

    2.cryptsetup luksFormat /dev/vdaN 可对新分区进行加密 ,并设置解密密码

    3.您输入正确的解密密码之后 , cryptsetup luksOpen /dev/vdaN name 会将加密的卷 /dev/vdaN 解锁为/dev/mapper/name

    4.解密的卷上创建 xfs 文件系统 : mkfs -t xfs

    /dev/mapper/name

    5.创建目录挂载点 , 并挂载文件系统 : mkdir /secret

    – mount /dev/mapper/name /secret

    6.完成之后 , umount /dev/mapper/name 并运行cryptsetup luksClose name 以锁定加密的卷

    eg:[root@localhost tmpfiles.d]# partprobe    

    [root@localhost tmpfiles.d]# cryptsetup luksFormat /dev/vdb1   ###对新分区进行加密 ,并设置解密密码

    WARNING!

    ========

    This will overwrite data on /dev/vdb1 irrevocably.

    Are you sure? (Type uppercase yes): YES

    Enter passphrase:    ###设置密码

    Verify passphrase:

    [root@localhost tmpfiles.d]# ll /dev/mapper/

    总用量 0

    crw-------. 1 root root 10, 236 Apr  5 21:04 control

    [root@localhost tmpfiles.d]# cryptsetup open /dev/vdb1 redhat   ###会将加密的卷 /dev/vdb1 解锁为/dev/mapper/redhat

    Enter passphrase for /dev/vdb1:    ###输入正确的密码

    [root@localhost tmpfiles.d]# ll /dev/mapper/

    总用量 0

    crw-------. 1 root root 10, 236 Apr  5 21:04 control

    lrwxrwxrwx. 1 root root       7 Apr  6 02:31 redhat -> ../dm-0

    [root@localhost tmpfiles.d]# mkfs.xfs /dev/mapper/redhat    ###解密的卷上创建 xfs 文件系统

    meta-data=/dev/mapper/redhat     isize=256    agcount=4, agsize=31872 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0

    data     =                       bsize=4096   blocks=127488, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal log           bsize=4096   blocks=853, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    [root@localhost tmpfiles.d]# mount /dev/mapper/redhat /mnt/   

    [root@localhost tmpfiles.d]# ls /mnt/

    [root@localhost tmpfiles.d]# touch /mnt/file{1..5}

    [root@localhost tmpfiles.d]# ls /mnt/

    file1  file2  file3  file4  file5

    [root@localhost tmpfiles.d]# umount /mnt/

    [root@localhost tmpfiles.d]# ls /mnt/

    [root@localhost tmpfiles.d]# ll /dev/mapper/

    总用量 0

    crw-------. 1 root root 10, 236 Apr  5 21:04 control

    lrwxrwxrwx. 1 root root       7 Apr  6 02:35 redhat -> ../dm-0

    [root@localhost tmpfiles.d]# cryptsetup close redhat   ###锁定加密的卷

    [root@localhost tmpfiles.d]# ll /dev/mapper/

    总用量 0

    crw-------. 1 root root 10, 236 Apr  5 21:04 control

    [root@localhost tmpfiles.d]# cryptsetup open /dev/vdb1 redhat

    Enter passphrase for /dev/vdb1:

    [root@localhost tmpfiles.d]# mount /dev/mapper/redhat /mnt/

    [root@localhost tmpfiles.d]# ls /mnt/

    file1  file2  file3  file4  file5

    [root@localhost tmpfiles.d]# umount /mnt/

    [root@localhost tmpfiles.d]# cryptsetup close redhat

    [root@localhost /]# mkfs.xfs /dev/vdb1 -f

    meta-data=/dev/vdb1              isize=256    agcount=4, agsize=65536 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0

    data     =                       bsize=4096   blocks=262144, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal log           bsize=4096   blocks=2560, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    十、三块设备做一个阵列

    eg:[root@localhost /]# fdisk /dev/vdb   ###创建新的分区

    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。

    使用写入命令前请三思。

    命令(输入 m 获取帮助):n   ###添加3个新分区

    Partition type:

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

       e   extended

    Select (default p): p   ###p根本的,e扩充的

    分区号 (1-4,默认 1):1

    起始 扇区 (2048-20971519,默认为 2048):

    将使用默认值 2048

    Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+1G

    分区 1 已设置为 Linux 类型,大小设为 1 GiB

    命令(输入 m 获取帮助):n

    Partition type:

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

       e   extended

    Select (default p): p

    分区号 (2-4,默认 2):2

    起始 扇区 (2099200-20971519,默认为 2099200):

    将使用默认值 2099200

    Last 扇区, +扇区 or +size{K,M,G} (2099200-20971519,默认为 20971519):+1G

    分区 2 已设置为 Linux 类型,大小设为 1 GiB

    命令(输入 m 获取帮助):n

    Partition type:

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

       e   extended

    Select (default p): p

    分区号 (3,4,默认 3):3

    起始 扇区 (4196352-20971519,默认为 4196352):

    将使用默认值 4196352

    Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+1G

    分区 3 已设置为 Linux 类型,大小设为 1 GiB

    命令(输入 m 获取帮助):t   ###改变标签fd Linux raid autodetect

    分区号 (1-3,默认 3):1    

    Hex 代码(输入 L 列出所有代码):fd

    已将分区“Linux”的类型更改为“Linux raid autodetect”

    命令(输入 m 获取帮助):t

    分区号 (1-3,默认 3):2

    Hex 代码(输入 L 列出所有代码):fd

    已将分区“Linux”的类型更改为“Linux raid autodetect”

    命令(输入 m 获取帮助):t

    分区号 (1-3,默认 3):3

    Hex 代码(输入 L 列出所有代码):fd

    已将分区“Linux”的类型更改为“Linux raid autodetect”

    命令(输入 m 获取帮助):p

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    /dev/vdb1            2048     2099199     1048576   fd  Linux raid autodetect

    /dev/vdb2         2099200     4196351     1048576   fd  Linux raid autodetect

    /dev/vdb3         4196352     6293503     1048576   fd  Linux raid autodetect

    命令(输入 m 获取帮助):wq

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    [root@localhost /]# partprobe

    [root@localhost /]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}

    mdadm: Note: this array has metadata at the start and

        may not be suitable as a boot device.  If you plan to

        store '/boot' on this device please ensure that

        your boot-loader understands md/v1.x metadata, or use

        --metadata=0.90

    Continue creating array? y

    mdadm: Defaulting to version 1.2 metadata

    mdadm: array /dev/md0 started.

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

    /dev/md0:

            Version : 1.2

      Creation Time : Thu Apr  6 03:09:57 2017

         Raid Level : raid1

         Array Size : 1048000 (1023.61 MiB 1073.15 MB)

      Used Dev Size : 1048000 (1023.61 MiB 1073.15 MB)

       Raid Devices : 2

      Total Devices : 3

        Persistence : Superblock is persistent

        Update Time : Thu Apr  6 03:10:18 2017

              State : clean

     Active Devices : 2

    Working Devices : 3

     Failed Devices : 0

      Spare Devices : 1

               Name : localhost:0  (local to host localhost)

               UUID : ee5fc225:414db753:cccafd10:f09edfdc

             Events : 17

        Number   Major   Minor   RaidDevice State

           0     253       17        0      active sync   /dev/vdb1

           1     253       18        1      active sync   /dev/vdb2

           2     253       19        -      spare   /dev/vdb3

    [root@localhost /]# mkfs.xfs /dev/md0

    meta-data=/dev/md0               isize=256    agcount=4, agsize=65500 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0

    data     =                       bsize=4096   blocks=262000, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal log           bsize=4096   blocks=853, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    [root@localhost /]# mount /dev/md0 /mnt/

    [root@localhost /]# df

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3810404 6663496   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17136  925524    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    /dev/md0        1044588   32928 1011660    4% /mnt

    [root@localhost /]# mdadm /dev/md0 -f /dev/vdb1

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

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

    /dev/md0:

            Version : 1.2

      Creation Time : Thu Apr  6 03:09:57 2017

         Raid Level : raid1

         Array Size : 1048000 (1023.61 MiB 1073.15 MB)

      Used Dev Size : 1048000 (1023.61 MiB 1073.15 MB)

       Raid Devices : 2

      Total Devices : 3

        Persistence : Superblock is persistent

        Update Time : Thu Apr  6 03:21:40 2017

              State : clean, degraded, recovering

     Active Devices : 1

    Working Devices : 2

     Failed Devices : 1

      Spare Devices : 1

     Rebuild Status : 62% complete

               Name : localhost:0  (local to host localhost)

               UUID : ee5fc225:414db753:cccafd10:f09edfdc

             Events : 29

        Number   Major   Minor   RaidDevice State

           2     253       19        0      spare rebuilding   /dev/vdb3

           1     253       18        1      active sync   /dev/vdb2

           0     253       17        -      faulty   /dev/vdb1

    [root@localhost /]# mdadm /dev/md0 -r /dev/vdb1

    mdadm: hot removed /dev/vdb1 from /dev/md0

    [root@localhost /]# mdadm /dev/md0 -a /dev/vdb1

    mdadm: added /dev/vdb1

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

    /dev/md0:

            Version : 1.2

      Creation Time : Thu Apr  6 03:09:57 2017

         Raid Level : raid1

         Array Size : 1048000 (1023.61 MiB 1073.15 MB)

      Used Dev Size : 1048000 (1023.61 MiB 1073.15 MB)

       Raid Devices : 2

      Total Devices : 3

        Persistence : Superblock is persistent

        Update Time : Thu Apr  6 03:22:40 2017

              State : clean

     Active Devices : 2

    Working Devices : 3

     Failed Devices : 0

      Spare Devices : 1

               Name : localhost:0  (local to host localhost)

               UUID : ee5fc225:414db753:cccafd10:f09edfdc

             Events : 40

        Number   Major   Minor   RaidDevice State

           2     253       19        0      active sync   /dev/vdb3

           1     253       18        1      active sync   /dev/vdb2

           3     253       17        -      spare   /dev/vdb1

    [root@localhost /]# df

    文件系统          1K-块    已用    可用 已用% 挂载点

    /dev/vda1      10473900 3810416 6663484   37% /

    devtmpfs         927072       0  927072    0% /dev

    tmpfs            942660      84  942576    1% /dev/shm

    tmpfs            942660   17136  925524    2% /run

    tmpfs            942660       0  942660    0% /sys/fs/cgroup

    /dev/md0        1044588   32928 1011660    4% /mnt

    [root@localhost /]# umount /mnt

    [root@localhost /]# mdadm -S /dev/md0

    mdadm: stopped /dev/md0

    [root@localhost /]# fdisk /dev/vdb

    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。

    使用写入命令前请三思。

    命令(输入 m 获取帮助):d

    分区号 (1-3,默认 3):1

    分区 1 已删除

    命令(输入 m 获取帮助):d

    分区号 (2,3,默认 3):2

    分区 2 已删除

    命令(输入 m 获取帮助):d

    已选择分区 3

    分区 3 已删除

    命令(输入 m 获取帮助):3

    3: unknown command

    命令操作

       a   toggle a bootable flag

       b   edit bsd disklabel

       c   toggle the dos compatibility flag

       d   delete a partition

       g   create a new empty GPT partition table

       G   create an IRIX (SGI) partition table

       l   list known partition types

       m   print this menu

       n   add a new partition

       o   create a new empty DOS partition table

       p   print the partition table

       q   quit without saving changes

       s   create a new empty Sun disklabel

       t   change a partition's system id

       u   change display/entry units

       v   verify the partition table

       w   write table to disk and exit

       x   extra functionality (experts only)

    命令(输入 m 获取帮助):p

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    命令(输入 m 获取帮助):wq

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    [root@localhost /]# partprobe

    [root@localhost /]# reboot

    Connection to 172.25.42.10 closed by remote host.

    Connection to 172.25.42.10 closed.

    [kiosk@foundation42 Desktop]$ ssh root@172.25.42.10 -X

    root@172.25.42.10's password:

    Last login: Thu Apr  6 03:20:39 2017 from 172.25.42.250

    [root@localhost ~]# fdisk -l

    磁盘 /dev/vda:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x00013f3e

       设备 Boot      Start         End      Blocks   Id  System

    /dev/vda1   *        2048    20970332    10484142+  83  Linux

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    [root@localhost ~]# blkid

    /dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"

    /dev/vdb: PTTYPE="dos"

    [root@localhost ~]# ll /dev/md0

    ls: 无法访问/dev/md0: 没有那个文件或目录

    [root@localhost ~]#

    [root@localhost ~]# watch -n 1 cat /proc/mdstat   ###监控

    第五单元 使用逻辑卷管理器管理灵活存储

    一、查看 LVM 定义

    1.物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完整磁盘、 RAID 集或 SAN 磁盘

    2.物理卷是 LVM 所使用的基础 “ 物理 ” 存储。这通常是块设备 ,例如分区或完整磁盘。设备必须初始化为 LVM 物理卷 , 才能

    LVM 结合使用

    3.卷组是存储池 , 由一个或多个物理卷组成

    4.物理区块是物理卷中存储的小型数据区块 , 用作 LVM 存储的后端

    5.逻辑区块映射到物理区块 , 构成 LVM 存储的前端。默认情况下 , 每个逻辑区块映射到一个物理区块。启用某些选项将更改此映射。例如 , 镜像会导致每个逻辑区块映射到两个物理区块

    6.逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用

    二、为什么使用逻辑卷

    1.逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间 ,可以将其卷组的可用空间分配给逻辑卷 , 并且可以调整文件系统的大小。如果磁盘开始出现错误 , 可以通过卷组将替换磁盘注册为物理卷 , 并且逻辑卷的范围可迁移到新磁盘。

    三、使用命令行工具实施 LVM 存储

    1.准备物理卷

    – disk 用于创建与 LVM 结合使用的新分区。在要与 LVM 结合使用的分区上 , 始终将“ 类型 ” 设置为 “ 0x8e Linux LVM”

    – pvcreate /dev/vdaN 用于初始化分区 ( 或其他物理设备 ), 使其作为物理卷与 LVM 结合使用。直接在物理卷中创建用于存储 LVM 配置数据的表头

    2.创建卷组

    – vgcreate vgname /dev/vdaN 将创建名为 vgname 且由物理卷 /dev/vdaN 组成的卷组。您可以在创建时指定其他物理卷 ( 以空格隔开 ), 也可以随后使用 vgextend 添加新物理卷

    3.创建和使用新逻辑卷

    – lvcreate -n lvname -L 2G vgname 从 vgname 上可用物理区块创建名为 lvname 、容量为 2GB 的新逻辑卷

    – mkfs -t ext4 /dev/vgname/lvname 将在新逻辑卷上创建 ext4 文件系统

    – mkdir /data 建立所需目录作为挂载点

    – 向 /etc/fstab 文件中添加一下条目:/dev/mapper/vgname-lvname /data ext4 defaults 1 2

    – 运行 mount -a 可在 /etc/fstab 中挂载所有文件系统 , 包括您刚刚添加的条目

    eg:[root@localhost ~]# fdisk /dev/vdb   ###创建两个分区,/dev/vdb1和/dev/vdb2,修改类型t-8e,将Linux类型修改为Linux LVM

    [root@localhost ~]# partprobe

    [root@localhost ~]# fdisk -l

    磁盘 /dev/vda:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x00013f3e

       设备 Boot      Start         End      Blocks   Id  System

    /dev/vda1   *        2048    20970332    10484142+  83  Linux

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    /dev/vdb1            2048     2099199     1048576   8e  Linux LVM   ###创建分区成功

    /dev/vdb2         2099200     4196351     1048576   8e  Linux LVM

    [root@localhost ~]# pvcreate /dev/vdb1   ###初始化分区失败 ,原因可能是/dev/md0自动激活

      Physical volume /dev/vdb1 not found

      Can't open /dev/vdb1 exclusively.  Mounted filesystem?

    [root@localhost ~]# mdadm -S /dev/md0   ###停止/dev/md0

    mdadm: stopped /dev/md0

    [root@localhost ~]# pvcreate /dev/vdb1   ###初始化分区vdb1, 使其作为物理卷与 LVM 结合使用

      Physical volume /dev/vdb1 not found

    WARNING: linux_raid_member signature detected on /dev/vdb1 at offset 4096. Wipe it? [y/n] y

      Wiping linux_raid_member signature on /dev/vdb1.

    WARNING: xfs signature detected on /dev/vdb1 at offset 0. Wipe it? [y/n] y

      Wiping xfs signature on /dev/vdb1.

      Physical volume "/dev/vdb1" successfully created

    [root@localhost ~]# vgcreate vg0 /dev/vdb1   ###将创建名为 vg0且由物理卷 /dev/vda1组成的卷组

      Volume group "vg0" successfully created

    [root@localhost ~]# lvcreate -L 100M -n lv0 vg0   ###从 vg0上可用物理区块创建名为 lv0、容量为100M的新逻辑卷

      Logical volume "lv0" created

    [root@localhost ~]# mkfs.xfs /dev/vg0/lv0    ###格式化,在新逻辑卷上创建文件系统

    meta-data=/dev/vg0/lv0           isize=256    agcount=4, agsize=6400 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0

    data     =                       bsize=4096   blocks=25600, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal log           bsize=4096   blocks=853, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    [root@localhost ~]# mount /dev/vg0/lv0 /pub/

    [root@localhost ~]# ll /dev/vg0/lv0

    lrwxrwxrwx. 1 root root 7 Apr  6 04:00 /dev/vg0/lv0 -> ../dm-0

    [root@localhost ~]# ll /dev/mapper/vg0-lv0    ###虚拟

    lrwxrwxrwx. 1 root root 7 Apr  6 04:00 /dev/mapper/vg0-lv0 -> ../dm-0

    [root@localhost ~]#

    [root@localhost ~]# watch -n 1 'pvs;echo======;vgs;echo========;lvs;echo=========;df -H /pub'   ###监控

    四、查看 LVM 状态信息

    1.pvdisplay /dev/vdaN 将显示有关特定物理卷的信息

    2.vgdisplay vgname 将显示有关特定卷组的信息

    3.lvdisplay /dev/vgname/lvname 将显示有关特定逻辑卷的信息

    五、扩展逻辑卷和 xfs 文件系统

    1.验证已挂载文件系统 /data 的当前大小

    – df -h /data

    2.验证 “ 可用物理区块 ” 是否够用

    – vgdisplay vgname

    3.使用部分或全部可用区块扩展逻辑卷

    – lvextend -l 128 /dev/vgname/lvname

    4.扩展在 /data 上挂载的关联文件系统

    – xfs_growfs

    /dev/vgname/lvname

    5.验证已挂载文件系统 /data 的新的大小

    – df -h /data

    eg:[root@localhost ~]# lvextend -L 500M /dev/vg0/lv0    ###扩展逻辑卷

      Extending logical volume lv0 to 500.00 MiB

      Logical volume lv0 successfully resized

    [root@localhost ~]# xfs_growfs /dev/vg0/lv0

    meta-data=/dev/mapper/vg0-lv0    isize=256    agcount=4, agsize=6400 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0

    data     =                       bsize=4096   blocks=25600, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal               bsize=4096   blocks=853, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    data blocks changed from 25600 to 128000

    [root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0

      Extending logical volume lv0 to 1.46 GiB

      Insufficient free space: 250 extents needed, but only 130 available

    [root@localhost ~]# pvcreate /dev/vdb2

      Physical volume /dev/vdb2 not found

    WARNING: linux_raid_member signature detected on /dev/vdb2 at offset 4096. Wipe it? [y/n] y

      Wiping linux_raid_member signature on /dev/vdb2.

      Physical volume "/dev/vdb2" successfully created

    [root@localhost ~]# vgextend vg0 /dev/vdb2

      Volume group "vg0" successfully extended

    [root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0

      Extending logical volume lv0 to 1.46 GiB

      Logical volume lv0 successfully resized

    [root@localhost ~]# xfs_growfs /dev/vg0/lv0

    meta-data=/dev/mapper/vg0-lv0    isize=256    agcount=20, agsize=6400 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0

    data     =                       bsize=4096   blocks=128000, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal               bsize=4096   blocks=853, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    data blocks changed from 128000 to 384000

    [root@localhost ~]# lvremove /dev/vg0/lv0

    Do you really want to remove active logical volume lv0? [y/n]: y

      Logical volume "lv0" successfully removed

    [root@localhost ~]# vgremove vg0

      Volume group "vg0" successfully removed

    [root@localhost ~]# pvremove /dev/vdb1

      Labels on physical volume "/dev/vdb1" successfully wiped

    [root@localhost ~]# pvremove /dev/vdb2

      Labels on physical volume "/dev/vdb2" successfully wiped

    [root@localhost ~]# fdisk /dev/vdb

    欢迎使用 fdisk (util-linux 2.23.2)。

    更改将停留在内存中,直到您决定将更改写入磁盘。

    使用写入命令前请三思。

    命令(输入 m 获取帮助):d

    分区号 (1,2,默认 2):1

    分区 1 已删除

    命令(输入 m 获取帮助):d

    已选择分区 2

    分区 2 已删除

    命令(输入 m 获取帮助):p

    磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理):512 字节 / 512 字节

    I/O 大小(最小/最佳):512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x5119a134

       设备 Boot      Start         End      Blocks   Id  System

    命令(输入 m 获取帮助):wq

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    [root@localhost ~]# partprobe

    [root@localhost ~]#

    [root@localhost ~]# watch -n 1 'pvs;echo======;vgs;echo========;lvs;echo=========;df -H /pub'   ###监控

    六、创建快照以便于数据备份

    1.快照逻辑卷是 LVM 存储的另一项灵活功能。LVM 快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图 , 从而能够以一致状态备份其数据

    2.快照卷大小只需足以存储在它存在期间更改的数据即可

    3.如果数据更改量大于快照存储容量 , 则快照将自动变为不可用。 ( 原始卷原封不动 , 仍然需要从卷组中手动解除挂载和删除不可用的快照。 )

    七、创建和使用快照进行备份

    1.创建 /dev/vgname/lvname 的名为 snaplvname 、大小为 20M 的新快照卷

    – lvcreate -s -n snaplv -L 20M /dev/vgname/lvname

    2.如果备份软件要求 , 请挂载该快照 , 并使备份程序指向新挂载点

    – mkdir /snapmount

    – mount -o ro /dev/vgname/snaplv /snapmount

    3.验证快照逻辑卷的状态

    – lvs /dev/vgname/snaplv

    4.不再使用快照时 , 请解除挂载并删除它

    – umount /snapmount

    – lvremove /dev/vgname/snaplv

    eg:[root@localhost ~]# df

    文件系统               1K-块    已用    可用 已用% 挂载点

    /dev/vda1           10473900 3809340 6664560   37% /

    devtmpfs              927072       0  927072    0% /dev

    tmpfs                 942660      80  942580    1% /dev/shm

    tmpfs                 942660   17076  925584    2% /run

    tmpfs                 942660       0  942660    0% /sys/fs/cgroup

    /dev/mapper/vg0-lv0  1532588    7072 1525516    1% /pub

    [root@localhost ~]# touch /pub/file{1..5}

    [root@localhost ~]# ls /pub

    file1  file2  file3  file4  file5

    [root@localhost ~]# umount /pub/

    [root@localhost ~]# ls /pub

    [root@localhost ~]# lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0   ###创建快照

      Logical volume "lv0-backup" created

    [root@localhost ~]# mount /dev/vg0/lv0-backup /pub/

    [root@localhost ~]# df

    文件系统                       1K-块    已用    可用 已用% 挂载点

    /dev/vda1                   10473900 3809320 6664580   37% /

    devtmpfs                      927072       0  927072    0% /dev

    tmpfs                         942660      80  942580    1% /dev/shm

    tmpfs                         942660   17064  925596    2% /run

    tmpfs                         942660       0  942660    0% /sys/fs/cgroup

    /dev/mapper/vg0-lv0--backup  1532588   34720 1497868    3% /pub

    [root@localhost ~]# ls /pub/

    file1  file2  file3  file4  file5

    [root@localhost ~]# rm -fr /pub/*

    [root@localhost ~]# ls /pub/

    [root@localhost ~]# umount /pub/

    [root@localhost ~]# lvremove /dev/vg0/lv0-backup

    Do you really want to remove active logical volume lv0-backup? [y/n]: y

      Logical volume "lv0-backup" successfully removed

    [root@localhost ~]# lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0

      Logical volume "lv0-backup" created

    [root@localhost ~]# mount /dev/vg0/lv0-backup /pub/

    [root@localhost ~]# ls /pub/

    file1  file2  file3  file4  file5

    [root@localhost ~]#

  • 相关阅读:
    c#去除List中的重复项
    c#比较两个List相等
    C#笔记
    解决Xcode真机测试时ineligible devices的问题
    unity3d UGUI多语言
    解决ugui中Image使用iTween的ColorTo、ColorFrom等不生效
    Unity3d uGUI适配
    184. 最大数
    187. 加油站
    46. 主元素
  • 原文地址:https://www.cnblogs.com/Virgo-sept/p/6684936.html
Copyright © 2011-2022 走看看