Linux_day7 使用RAID与LVM磁盘阵列技术

Python内置函数zip()——《Python内置函数手册》Python老吕编著 zip()函数是 Python 中的一个内置函数,用于将多个可迭代对象(如列表、元组、字符串等)中对应的元素打包成一个个元组,然后返回由这些元组组成的迭代器。zip()函数常用于将多个序列并行迭代,或者用于数据对齐。zip()它返回一个迭代器,这意味着你可以逐个获取打包后的元素,而不是一次性将所有元素加载到内存中。如果输入的可迭代对象长度不一致,zip()会以最短的可迭代对象为准,只打包到最短对象的末尾。它可以用来并行迭代多个序列,使得代码更加简洁和高效。在接下来的章节中,我们将详细介绍。 阅读详情

Linux_day7 使用RAID与LVM磁盘阵列技术


1.RAID磁盘冗余阵列

  • RAID 0

    • RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。

    • 能够有效地提升硬盘数据的吞吐速度

    • 不具备数据备份和错误修复能力,若任意一块硬盘发生故障将导致整个系统的数据收到破坏

      7-1

  • RAID 1

    • RAID 1是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。

    • RAID 1技术虽然十分注重数据的安全性,但是因为是在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率得以下降

    • 而且,由于需要把数据同时写入到两块以上的硬盘设备,这无疑也在一定程度上增大了系统计算功能的负载

      7-2

  • RAID 5

    • RAID 5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中

    • RAID 5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据

    • RAID 5这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题

      7-3

  • RAID 10

    • RAID 10技术是RAID 1+RAID 0技术的一个“组合体”。

    • RAID 10技术需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度。

      7-4

1.1部署磁盘阵列

  • mdadm命令
    • 用于管理Linux系统中的软件RAID硬盘阵列

    • 格式为“mdadm [模式] <RAID设备名> [选项] [成员设备名称]”

    • 常用参数:

      参数作用
      -a检测设备名称 yes参数代表自动创建设备文件
      -n指定设备数量
      -l指定RAID级别
      -C创建一个RAID阵列卡
      -v显示创建的过程
      -f模拟设备损坏
      -r移除设备
      -Q查看摘要信息
      -D查看详细信息
      -S停止RAID磁盘阵列
      -x备份盘数量
    • 范例:创建RAID 10方案

      • 1.使用mdadm命令创建RAID 10

          [root@localhost Desktop]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdc /dev/sdd /dev/sde /dev/sdf
          mdadm: layout defaults to n2
          mdadm: layout defaults to n2
          mdadm: chunk size defaults to 512K
          mdadm: size set to 5238272K
          mdadm: Defaulting to version 1.2 metadata
          mdadm: array /dev/md0 started.
        
      • 2.把制作好的RAID磁盘阵列格式化为xfs格式

          [root@localhost Desktop]# mkfs.xfs /dev/md0
          log stripe unit (524288 bytes) is too large (maximum is 256KiB)
          log stripe unit adjusted to 32KiB
          meta-data=/dev/md0        isize=256    agcount=16, agsize=163712 blks
                   =                sectsz=512   attr=2, projid32bit=1
                   =                crc=0
          data     =                bsize=4096   blocks=2619136, imaxpct=25
                   =                sunit=128    swidth=256 blks
          naming   =version 2       bsize=4096   ascii-ci=0 ftype=0
          log      =internal log    bsize=4096   blocks=2560, version=2
                   =                sectsz=512   sunit=8 blks, lazy-count=1
          realtime =none            extsz=4096   blocks=0, rtextents=0
        
      • 3.创建挂载点然后把硬盘设备进行挂载操作

          [root@localhost Desktop]# mkdir /RAID
          [root@localhost Desktop]# mount /dev/md0 /RAID
          [root@localhost Desktop]# df -h
          Filesystem             Size  Used Avail Use% Mounted on
          /dev/mapper/rhel-root   18G  2.9G   15G  17% /
          devtmpfs               985M     0  985M   0% /dev
          tmpfs                  994M  140K  994M   1% /dev/shm
          tmpfs                  994M  8.8M  986M   1% /run
          tmpfs                  994M     0  994M   0% /sys/fs/cgroup
          /dev/sdb2              3.0G   33M  3.0G   2% /newFS2
          /dev/sdb1              2.0G   66M  2.0G   4% /newFS
          /dev/sda1              497M  127M  371M  26% /boot
          /dev/sr0               3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64
          /dev/md0                10G   33M   10G   1% /RAID
        
      • 4.查看/dev/md0磁盘阵列的详细信息,并把挂载信息写入到配置文件中,使其永久生效

          [root@localhost Desktop]# mdadm -D /dev/md0
          /dev/md0:
                  Version : 1.2
            Creation Time : Sun Apr 12 21:52:23 2020
               Raid Level : raid10
               Array Size : 10476544 (9.99 GiB 10.73 GB)
            Used Dev Size : 5238272 (5.00 GiB 5.36 GB)
             Raid Devices : 4
            Total Devices : 4
              Persistence : Superblock is persistent
        
              Update Time : Sun Apr 12 21:53:55 2020
                    State : clean
           Active Devices : 4
          Working Devices : 4
           Failed Devices : 0
            Spare Devices : 0
        
                   Layout : near=2
               Chunk Size : 512K
        
                     Name : localhost.localdomain:0  (local to host localhost.localdomain)
                     UUID : d6707e47:20c6c8c5:fc20d688:1c998ef9
                   Events : 19
        
              Number   Major   Minor   RaidDevice State
                 0       8       32        0      active sync   /dev/sdc
                 1       8       48        1      active sync   /dev/sdd
                 2       8       64        2      active sync   /dev/sde
                 3       8       80        3      active sync   /dev/sdf
          [root@localhost Desktop]# echo "/dev/md0 /RAID xfs defaults 0 0" >> /etc/fstab
        

1.2 损坏磁盘阵列及修复

  • 范例:
    • 1.损坏磁盘阵列

        [root@localhost Desktop]# mdadm /dev/md0 -f /dev/sdd
        mdadm: set /dev/sdd faulty in /dev/md0
        [root@localhost Desktop]# mdadm -D /dev/md0
        /dev/md0:
                Version : 1.2
          Creation Time : Sun Apr 12 21:52:23 2020
             Raid Level : raid10
             Array Size : 10476544 (9.99 GiB 10.73 GB)
          Used Dev Size : 5238272 (5.00 GiB 5.36 GB)
           Raid Devices : 4
          Total Devices : 4
            Persistence : Superblock is persistent
      
            Update Time : Sun Apr 12 23:13:40 2020
                  State : clean, degraded
         Active Devices : 3
        Working Devices : 3
         Failed Devices : 1
          Spare Devices : 0
      
                 Layout : near=2
             Chunk Size : 512K
      
                   Name : localhost.localdomain:0  (local to host localhost.localdomain)
                   UUID : d6707e47:20c6c8c5:fc20d688:1c998ef9
                 Events : 54
      
            Number   Major   Minor   RaidDevice State
               0       8       32        0      active sync   /dev/sdc
               1       0        0        1      removed
               2       8       64        2      active sync   /dev/sde
               3       8       80        3      active sync   /dev/sdf
      
               4       8       48        -      faulty   /dev/sdd
      
    • 2.磁盘阵列修复

        [root@localhost Desktop]# reboot
        [root@localhost Desktop]# umount /RAID
        [root@localhost Desktop]# mdadm /dev/md0 -a /dev/sdd
        mdadm: added /dev/sdd
        [root@localhost Desktop]# mdadm -D /dev/md0
        /dev/md0:
                Version : 1.2
          Creation Time : Sun Apr 12 21:52:23 2020
             Raid Level : raid10
             Array Size : 10476544 (9.99 GiB 10.73 GB)
          Used Dev Size : 5238272 (5.00 GiB 5.36 GB)
           Raid Devices : 4
          Total Devices : 4
            Persistence : Superblock is persistent
      
            Update Time : Sun Apr 12 23:29:41 2020
                  State : clean, degraded, recovering 
         Active Devices : 3
        Working Devices : 4
         Failed Devices : 0
          Spare Devices : 1
      
                 Layout : near=2
             Chunk Size : 512K
      
         Rebuild Status : 83% complete
      
                   Name : localhost.localdomain:0  (local to host localhost.localdomain)
                   UUID : d6707e47:20c6c8c5:fc20d688:1c998ef9
                 Events : 77
      
            Number   Major   Minor   RaidDevice State
               0       8       32        0      active sync   /dev/sdc
               4       8       48        1      spare rebuilding   /dev/sdd
               2       8       64        2      active sync   /dev/sde
               3       8       80        3      active sync   /dev/sdf
        [root@localhost Desktop]# mount -a
      

1.3 磁盘阵列+备份盘

  • 范例:
    • 1.创建磁盘阵列+备份盘

        [root@localhost Desktop]# umount /dev/md0
        [root@localhost Desktop]# mdadm -S /dev/md0
        mdadm: stopped /dev/md0
        [root@localhost Desktop]# mdadm -D /dev/md0
        mdadm: cannot open /dev/md0: No such file or directory
        [root@localhost Desktop]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdc /dev/sdd /dev/sde /dev/sdf
        mdadm: layout defaults to left-symmetric
        mdadm: layout defaults to left-symmetric
        mdadm: chunk size defaults to 512K
        mdadm: /dev/sdc appears to be part of a raid array:
            level=raid10 devices=4 ctime=Sun Apr 12 21:52:23 2020
        mdadm: /dev/sdd appears to be part of a raid array:
            level=raid10 devices=4 ctime=Sun Apr 12 21:52:23 2020
        mdadm: /dev/sde appears to be part of a raid array:
            level=raid10 devices=4 ctime=Sun Apr 12 21:52:23 2020
        mdadm: /dev/sdf appears to be part of a raid array:
            level=raid10 devices=4 ctime=Sun Apr 12 21:52:23 2020
        mdadm: size set to 5238272K
        Continue creating array? y
        mdadm: Defaulting to version 1.2 metadata
        mdadm: array /dev/md0 started.
        [root@localhost Desktop]# mdadm -D /dev/md0
        /dev/md0:
                Version : 1.2
          Creation Time : Sun Apr 12 23:42:30 2020
             Raid Level : raid5
             Array Size : 10476544 (9.99 GiB 10.73 GB)
          Used Dev Size : 5238272 (5.00 GiB 5.36 GB)
           Raid Devices : 3
          Total Devices : 4
            Persistence : Superblock is persistent
      
            Update Time : Sun Apr 12 23:42:44 2020
                  State : clean, degraded, recovering 
         Active Devices : 2
        Working Devices : 4
         Failed Devices : 0
          Spare Devices : 2
      
                 Layout : left-symmetric
             Chunk Size : 512K
      
         Rebuild Status : 51% complete
      
                   Name : localhost.localdomain:0  (local to host localhost.localdomain)
                   UUID : c0f54fc7:bbf70d6c:e74a04a2:b95a9cdb
                 Events : 9
      
            Number   Major   Minor   RaidDevice State
               0       8       32        0      active sync   /dev/sdc
               1       8       48        1      active sync   /dev/sdd
               4       8       64        2      spare rebuilding   /dev/sde
      
               3       8       80        -      spare   /dev/sdf
      
    • 2.格式化和挂载

        [root@localhost Desktop]# mkfs.xfs /dev/md0
        mkfs.xfs: /dev/md0 appears to contain an existing filesystem (xfs).
        mkfs.xfs: Use the -f option to force overwrite.
        [root@localhost Desktop]# mkfs.xfs -f /dev/md0
        log stripe unit (524288 bytes) is too large (maximum is 256KiB)
        log stripe unit adjusted to 32KiB
        meta-data=/dev/md0        isize=256    agcount=16, agsize=163712 blks
                 =                sectsz=512   attr=2, projid32bit=1
                 =                crc=0
        data     =                bsize=4096   blocks=2619136, imaxpct=25
                 =                sunit=128    swidth=256 blks
        naming   =version 2       bsize=4096   ascii-ci=0 ftype=0
        log      =internal log    bsize=4096   blocks=2560, version=2
                 =                sectsz=512   sunit=8 blks, lazy-count=1
        realtime =none              extsz=4096   blocks=0, rtextents=0
        [root@localhost Desktop]# mount /dev/md0 /RAID/
        [root@localhost Desktop]# df -h
        Filesystem             Size  Used Avail Use% Mounted on
        /dev/mapper/rhel-root   18G  2.9G   15G  17% /
        devtmpfs               985M     0  985M   0% /dev
        tmpfs                  994M  140K  994M   1% /dev/shm
        tmpfs                  994M  8.9M  986M   1% /run
        tmpfs                  994M     0  994M   0% /sys/fs/cgroup
        /dev/sdb2              3.0G   33M  3.0G   2% /newFS2
        /dev/sdb1              2.0G   66M  2.0G   4% /newFS
        /dev/sda1              497M  127M  371M  26% /boot
        /dev/sr0               3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64
        /dev/md0                10G   33M   10G   1% /RAID
      
    • 3.损坏磁盘阵列,备份盘后补

        [root@localhost Desktop]# mdadm /dev/md0 -f /dev/sdd
        mdadm: set /dev/sdd faulty in /dev/md0
        [root@localhost Desktop]# mdadm -D /dev/md0
        /dev/md0:
                 Version : 1.2
           Creation Time : Sun Apr 12 23:42:30 2020
              Raid Level : raid5
              Array Size : 10476544 (9.99 GiB 10.73 GB)
           Used Dev Size : 5238272 (5.00 GiB 5.36 GB)
            Raid Devices : 3
           Total Devices : 4
             Persistence : Superblock is persistent
      
             Update Time : Sun Apr 12 23:49:48 2020
                   State : clean, degraded, recovering
          Active Devices : 2
         Working Devices : 3
          Failed Devices : 1
           Spare Devices : 1
      
                  Layout : left-symmetric
              Chunk Size : 512K
      
          Rebuild Status : 42% complete
      
                    Name : localhost.localdomain:0  (local to host localhost.localdomain)
                    UUID : c0f54fc7:bbf70d6c:e74a04a2:b95a9cdb
                  Events : 28
      
          Number   Major   Minor   RaidDevice State
             0       8       32        0      active sync   /dev/sdc
             3       8       80        1      spare rebuilding   /dev/sdf
             4       8       64        2      active sync   /dev/sde
      
             1       8       48        -      faulty   /dev/sdd
      

2.LVM逻辑卷管理器

  • 逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。

  • LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。

    7-5

  • LVM的核心理念:卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。

2.1 部署逻辑卷

  • 部署LVM时,需要逐个配置物理卷、卷组、和逻辑卷。

  • 常用的LVM部署命令

    功能/命令物理卷管理卷组管理逻辑卷管理
    扫描pvscanvgscanlvscan
    建立pvcreatevgcreatelvcreate
    显示pvdisplayvgdisplaylvdisplay
    删除pvremovevgremovelvremove
    扩展vgextendlvextend
    缩小vgreducelvreduce
  • 范例:部署逻辑卷步奏:

    • 1.让新添加的两块硬盘设备支持LVN技术。

        [root@localhost Desktop]# pvcreate /dev/sdc /dev/sdd /dev/sde /dev/sdf
        Physical volume "/dev/sdc" successfully created  
        Physical volume "/dev/sdd" successfully created  
        Physical volume "/dev/sde" successfully created
        Physical volume "/dev/sdf" successfully created
      
    • 2.把四块硬盘设备加入到herhan卷组,然后查看卷组的状态

        [root@localhost Desktop]# vgcreate herhan /dev/sdc /dev/sdd /dev/sde /dev/sdf
         Volume group "herhan" successfully created
        [root@localhost Desktop]# vgdisplay
        --- Volume group ---
         VG Name               herhan
         System ID
         Format                lvm2
         Metadata Areas        4
         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                4
         Act PV                4
         VG Size               19.98 GiB
         PE Size               4.00 MiB
         Total PE              5116
         Alloc PE / Size       0 / 0
         Free  PE / Size       5116 / 19.98 GiB
         VG UUID               ul133W-VC5d-hpmT-oJp2-a2Ki-1cYo-trZ6kD
      
    • 3.切割出一个约为200MB的逻辑卷设备

      • 方法1是以容器为单位,所使用的参数为-L。例如,使用-L 150M生成一个大小为150MB的逻辑卷
      • 方法2是以基础单元的个数为单元,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小为37x4M=148M的逻辑卷。
        [root@localhost Desktop]# lvcreate -n vo -l 50 herhan
         Logical volume "vo" created
        [root@localhost Desktop]# lvdisplay
        --- Logical volume ---
         LV Path                /dev/herhan/vo
         LV Name                vo
         VG Name                herhan
         LV UUID                32I0Vu-43lL-rFWh-8Hip-1q7W-S4DF-s8uqUI
         LV Write Access        read/write
         LV Creation host, time localhost.localdomain, 2020-04-13 21:35:19 +0800
         LV Status              available
         # open                 0
         LV Size                200.00 MiB
         Current LE             50
         Segments               1
         Allocation             inherit
         Read ahead sectors     auto
         - currently set to     8192
         Block device           253:2
      
    • 4.把生成好的逻辑卷进行格式化,然后挂载使用。

        [root@localhost Desktop]# mkfs.ext4 /dev/herhan/vo
        mke2fs 1.42.9 (28-Dec-2013)
        Filesystem label=
        OS type: Linux
        Block size=1024 (log=0)
        Fragment size=1024 (log=0)
        Stride=0 blocks, Stripe width=0 blocks
        51200 inodes, 204800 blocks
        10240 blocks (5.00%) reserved for the super user
        First data block=1
        Maximum filesystem blocks=33816576
        25 block groups
        8192 blocks per group, 8192 fragments per group
        2048 inodes per group
        Superblock backups stored on blocks:
          8193, 24577, 40961, 57345, 73729
      
        Allocating group tables: done
        Writing inode tables: done
        Creating journal (4096 blocks): done
        Writing superblocks and filesystem accounting information: done
      
        [root@localhost Desktop]# mkdir /herhan
        [root@localhost Desktop]# mount /dev/herhan/vo /herhan/
      
    • 5.查看挂载状态,并写入到配置文件,使其永久生效。

        [root@localhost Desktop]# df -h
        Filesystem             Size  Used Avail Use% Mounted on
        /dev/mapper/rhel-root   18G  2.9G   15G  17% /
        devtmpfs               985M     0  985M   0% /dev
        tmpfs                  994M  140K  994M   1% /dev/shm
        tmpfs                  994M  8.9M  986M   1% /run
        tmpfs                  994M     0  994M   0% /sys/fs/cgroup
        /dev/sdb2              3.0G   33M  3.0G   2% /newFS2
        /dev/sdb1              2.0G   66M  2.0G   4% /newFS
        /dev/sda1              497M  127M  371M  26% /boot
        /dev/sr0               3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64
        /dev/mapper/herhan-vo  190M  1.6M  175M   1% /herhan
        [root@localhost Desktop]# echo "/dev/herhan/vo /herhan ext4 defaults 0 0" >> /etc/fstab
      

2.2 扩容逻辑卷

  • 用户在使用存储设备时感知不到设备底层的架构和布局,更不用关心底层是由多少块硬盘组成的,只要卷组中有足够的资源,就可以一直为逻辑卷扩容。扩展前请一定要记得卸载设备和挂载点的关联。

      [root@localhost Desktop]# umount /herhan
    
  • 1.把上一个实验中的逻辑卷vo扩展至300MB

      [root@localhost Desktop]# lvextend -L 300M /dev/herhan/vo
      Extending logical volume vo to 300.00 MiB
      Logical volume vo successfully resized
    
  • 2.检查硬盘完整性,重新挂载硬盘设备,并重置硬盘容量。

      [root@localhost Desktop]# e2fsck -f /dev/herhan/vo
      e2fsck 1.42.9 (28-Dec-2013)
      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/herhan/vo: 11/51200 files (0.0% non-contiguous), 12115/204800 blocks
      [root@localhost Desktop]# mount -a
      [root@localhost Desktop]# df -h
      Filesystem             Size  Used Avail Use% Mounted on
      /dev/mapper/rhel-root   18G  2.9G   15G  17% /
      devtmpfs               985M     0  985M   0% /dev
      tmpfs                  994M  140K  994M   1% /dev/shm
      tmpfs                  994M  8.8M  986M   1% /run
      tmpfs                  994M     0  994M   0% /sys/fs/cgroup
      /dev/sdb2              3.0G   33M  3.0G   2% /newFS2
      /dev/sdb1              2.0G   66M  2.0G   4% /newFS
      /dev/sda1              497M  127M  371M  26% /boot
      /dev/sr0               3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64
      /dev/mapper/herhan-vo  190M  1.6M  175M   1% /herhan
      [root@localhost Desktop]# resize2fs /dev/herhan/vo
      resize2fs 1.42.9 (28-Dec-2013)
      Filesystem at /dev/herhan/vo is mounted on /herhan; on-line resizing required
      old_desc_blocks = 2, new_desc_blocks = 3
      The filesystem on /dev/herhan/vo is now 307200 blocks long.
    
  • 3.查看挂载状态。

      [root@localhost Desktop]# df -h
      Filesystem             Size  Used Avail Use% Mounted on
      /dev/mapper/rhel-root   18G  2.9G   15G  17% /
      devtmpfs               985M     0  985M   0% /dev
      tmpfs                  994M  140K  994M   1% /dev/shm
      tmpfs                  994M  8.8M  986M   1% /run
      tmpfs                  994M     0  994M   0% /sys/fs/cgroup
      /dev/sdb2              3.0G   33M  3.0G   2% /newFS2
      /dev/sdb1              2.0G   66M  2.0G   4% /newFS
      /dev/sda1              497M  127M  371M  26% /boot
      /dev/sr0               3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64
      /dev/mapper/herhan-vo  287M  2.1M  267M   1% /herhan
    

2.3 缩小逻辑卷

  • 在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。

      [root@localhost Desktop]# umount /herhan
    
  • 1.检查文件系统的完整性。

      [root@localhost Desktop]# e2fsck -f /dev/herhan/vo
      e2fsck 1.42.9 (28-Dec-2013)
      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/herhan/vo: 11/77824 files (0.0% non-contiguous), 15987/307200 blocks
    
  • 2.把逻辑卷vo的容量减少到100M

      [root@localhost Desktop]# resize2fs /dev/herhan/vo 100M
      resize2fs 1.42.9 (28-Dec-2013)
      Resizing the filesystem on /dev/herhan/vo to 102400 (1k) blocks.
      The filesystem on /dev/herhan/vo is now 102400 blocks long.
    
      [root@localhost Desktop]# lvreduce -L 100M /dev/herhan/vo
      WARNING: Reducing active logical volume to 100.00 MiB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
      Do you really want to reduce vo? [y/n]: y
      Reducing logical volume vo to 100.00 MiB
      Logical volume vo successfully resized
    
  • 3.重新挂载文件系统并查看系统状态。

      [root@localhost Desktop]# mount -a
      [root@localhost Desktop]# df -h
      Filesystem             Size  Used Avail Use% Mounted on
      /dev/mapper/rhel-root   18G  2.9G   15G  17% /
      devtmpfs               985M     0  985M   0% /dev
      tmpfs                  994M  140K  994M   1% /dev/shm
      tmpfs                  994M  8.8M  986M   1% /run
      tmpfs                  994M     0  994M   0% /sys/fs/cgroup
      /dev/sdb2              3.0G   33M  3.0G   2% /newFS2
      /dev/sdb1              2.0G   66M  2.0G   4% /newFS
      /dev/sda1              497M  127M  371M  26% /boot
      /dev/sr0               3.5G  3.5G     0 100% /run/media/root/RHEL-7.0 Server.x86_64
      /dev/mapper/herhan-vo   93M  1.6M   85M   2% /herhan
    

2.4 逻辑卷快照

  • LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。

  • LVM的快照卷功能有两个特点:

    • 快照卷的容量必须等同于逻辑卷的容量;
    • 快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。
  • 范例:

    • 查看卷组的信息

    • 接下来用重定向往逻辑卷设备所挂载的目录中写入一个文件。

        [root@localhost Desktop]# echo "Welcome to herhan.com" > /herhan/readme.txt
        [root@localhost Desktop]# ls -l /herhan
        total 14
        drwx------. 2 root root 12288 Apr 13 21:44 lost+found
        -rw-r--r--. 1 root root    22 Apr 13 23:16 readme.txt
      
    • 1.使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。

        [root@localhost Desktop]# lvcreate -L 100M -s -n SNAP /dev/herhan/vo
        Logical volume "SNAP" created
        [root@localhost Desktop]# lvdisplay
         --- Logical volume ---
         LV Path                /dev/herhan/SNAP
         LV Name                SNAP
         VG Name                herhan
         LV UUID                JEVqxT-bc0P-U8of-so2d-dnpv-wxSf-ls8Jvn
         LV Write Access        read/write
         LV Creation host, time localhost.localdomain, 2020-04-13 23:21:13 +0800
         LV snapshot status     active destination for vo
         LV Status              available
         # open                 0
         LV Size                100.00 MiB
         Current LE             25
         COW-table size         100.00 MiB
         COW-table LE           25
         Allocated to snapshot  0.01%
         Snapshot chunk size    4.00 KiB
         Segments               1
         Allocation             inherit
         Read ahead sectors     auto
         - currently set to     8192
         Block device           253:3
      
    • 2.在逻辑卷所挂载的目录中创建一个100MB的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了。

        [root@localhost Desktop]# dd if=/dev/zero of=/herhan/files count=1 bs=100M
        dd: error writing ‘/herhan/files’: No space left on device
        1+0 records in
        0+0 records out
        93528064 bytes (94 MB) copied, 0.932516 s, 100 MB/s
      
    • 3.为了校验SNAP快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。

        [root@localhost Desktop]# lvconvert --merge /dev/herhan/SNAP 
        Merging of volume SNAP started.
        vo: Merged: 24.8%
        vo: Merged: 100.0%
        Merge of snapshot into logical volume vo has finished.
        Logical volume "SNAP" successfully removed
      
    • 4.快照卷会被自动删除掉,并且刚刚在逻辑卷设备被执行快照操作后再创建出来的100MB的垃圾文件也被清除了。

        [root@localhost Desktop]# mount -a
        [root@localhost Desktop]# ls -l /herhan
        total 14
        drwx------. 2 root root 12288 Apr 13 21:44 lost+found
        -rw-r--r--. 1 root root    22 Apr 13 23:16 readme.txt
      

2.5 删除逻辑卷

  • 需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。

  • 1.取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。

      [root@localhost Desktop]# umount /herhan
      [root@localhost Desktop]# vim /etc/fstab
      #
      # /etc/fstab
      # Created by anaconda on Mon Mar 30 10:57:59 2020
      #
      # 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
      #
      /dev/mapper/rhel-root   /                       xfs     defaults        1 1
      UUID=6e4ae779-2177-4917-b994-1aa87e9c8180 /boot                   xfs     defaults,uquota        1 2
      /dev/mapper/rhel-swap   swap                    swap    defaults        0 0
      /dev/sdb1               /newFS                  xfs     defaults        0 0
      /dev/sdb2               /newFS2                 xfs     defaults        0 0
      /dev/sdb3               swap                    swap    defaults        0 0
      #del
      /dev/herhan/vo /herhan ext4 defaults 0 0
    
    • 2.删除逻辑卷设备,需要输入y来确认操作。

        [root@localhost Desktop]# lvremove /dev/herhan/vo
        Do you really want to remove active logical volume vo? [y/n]: y
        Logical volume "vo" successfully removed
      
    • 3.删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。

        [root@localhost Desktop]# vgremove herhan
        Volume group "herhan" successfully removed
      
    • 4.删除物理卷设备。

        [root@localhost Desktop]# pvremove /dev/sdc /dev/sdd /dev/sde /dev/sdf
        Labels on physical volume "/dev/sdc" successfully wiped
        Labels on physical volume "/dev/sdd" successfully wiped
        Labels on physical volume "/dev/sde" successfully wiped
        Labels on physical volume "/dev/sdf" successfully wiped
      
    • 5.在上述操作执行完毕之后,再执行lvdisplay、vgdisplay、pvdisplay命令来查看LVM的信息时就不会再看到信息了(前提是上述步骤的操作是正确的)。

第 13 章:Spring AI Alibaba MCP 与 Nacos3 — 企业级MCP服务 理解Spring AI Alibaba 框架下的MCP服务与Nacos注册中心整合的必要性,学会Spring AI Alibaba-基于Nacos的MCP实现方法 阅读详情

相关推荐

从ADRV9002到ADRV9003:手把手教你移植FPGA驱动,避开那些官方没说的坑

本文详细介绍了从ADRV9002到ADRV9003的FPGA驱动移植实战指南,重点解析了两者在硬件架构上的关键差异,如通道配置和DPD功能的移除。通过提供完整的移植步骤、调试技巧和性能优化建议,帮助工程师避开官方文档未提及的常见陷阱,实现高效驱动开发。

weixin_28738397的博客 168

Linux Centos 使用软件 RAID 磁盘阵列方法

Raid磁盘阵列简单的说就是按照不同的需求将多块硬盘组合在一起。目前常见raid组合方式有raid0、raid1、raid5、raid10,关于这几种模式的区别就不多做介绍。Raid实现方式也可以分为硬件raid(使用硬盘 raid 阵列卡或者硬盘柜),软件raid(在操作系统上安装软件去控制硬盘实现raid模式),软件raid与硬件raid各有各的优劣。

优秀的老黄的博客 3426

EDKII实战:手把手调试PciHostBridge.c,看UEFI如何分配你的PCIe设备资源(IO/Memory空间)

本文深入解析EDKII中PciHostBridge.c模块的工作原理,详细指导如何调试PCIe设备资源分配(IO/Memory空间)。通过实战案例展示UEFI环境下Root Bridge初始化、地址空间转换及协议安装等核心流程,提供常见问题排查方法与性能优化建议,帮助开发者解决PCIe设备兼容性问题。

weixin_29201933的博客 205

Go操作Redis数据库

Redis数据库介绍 Redis支持诸如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、带范围查询的排序集合(sorted sets)、位图(bitmaps)、hyperloglogs。 Redis应用场 缓存系统,减轻主数据库(MySQL)的压力。 计数场景,比如微博、抖音中的关注数和粉丝数。 热门排行榜,需要排序的场景特别适合使用ZSET。 利用LIST可以实现队列的功能。 go-redis库 区别于另一个比较常用的Go语言redis client库:re

qq_43514659的博客 1万+

一体化伺服电机与施耐德PLC TM241CEC24T在Canopen协议下的应用

一.硬件组成 软件组成:施耐德SoMachineV4.3二.○1.打开SoMachineV4.3,点击“新建项目”○2.点击“空白项目”○3.项目命名○4.点击“创建项目” 三. 点击“Logic Builder” 四. ○1.右击项目”PMM_CANOPEN_ST”添加设备○2.点击”LogicController”选择PLC型号TM241CEC24T/U○3.点击“添加设备” 五. ○1.右击CAN_1,添加设备○2.选择“CANopen Perfomance”○3.点击“添加设备”

m0_46512607的博客 2508

中山大学_数据科学与计算机_预推免

前言 2019 年 9 月中旬是中山大学预推免时间,本人没能进到夏令营,但是最后在预推免上岸也算不幸中的万幸。 记忆不一定准确,但希望能帮到他人。 想看 流程 的可以直接看总结,正文部分有本人心路历程。 预推免 中山大学的预推免大致可以分为 报道,机试,面试 三大部分,而且尤其是面试,所有人加起来总时长 3 天,幸运的是,本人被安排在第一天的下午第一场,上午就是机试,报道,机试,面试,无缝衔接。 ...

一把健 5201

RAID和LVM详解

RAID磁盘列阵保护数据的安全性,对文件数据的保存具有重要的意义。即使有磁盘故障的时候,仍能安全的读出数据,在数据重构时,将数据重新写入新的磁盘中。LVM是对磁盘的动态化管理,通过lvm使得资源更加合理化。

liuxingyu_ling的博客 3617

AGV避坑指南:海康控制系统与Modbus设备对接的那些‘坑’

本文深入解析海康AGV控制系统与Modbus设备对接中的常见问题及解决方案,涵盖通信协议对接、信号干扰、硬件层问题和软件优化策略。通过真实案例和实用技巧,帮助工程师规避典型陷阱,提升系统稳定性和效率。

l3m4n的博客 732

# Linux进阶Day03逻辑卷管理与RAID磁盘阵列

RAID即廉价冗余磁盘阵列(Redundant Arrays of Inexpensive Disks),通过硬件或软件技术将多个较小/低速的磁盘整合为一个大容量虚拟磁盘,核心价值是提升I/O读写效率和实现硬件级别的数据冗余,不同RAID级别功能、特性差异显著。

weixin_46136019的博客 638

手把手教你用CMake和MinGW64编译libuvc:静态链接与动态链接的选择

本文详细指导如何在Windows平台上使用CMake和MinGW64编译libuvc库,并深入探讨静态链接与动态链接的选择策略。通过对比两种链接方式在部署复杂度、内存占用和版本管理等方面的差异,帮助开发者根据项目需求做出最优决策,实现高效的USB摄像头开发。

weixin_29171087的博客 249

宝骏kiwi 630 730 560 E100 E200 E300 310 510 610 330 530维修手册电路图资料线路图接线图更新

2020-2022年宝骏RS-3维修手册和电路图。2020-2022年宝骏RS-3维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2021年宝骏510维修手册和电路图。2019-2021年宝骏510维修手册和电路图。

weixin_45821055的博客 1762

Linux学习day7--LVM逻辑卷划分和RAID的使用

Linux学习day7–LVM逻辑卷划分和RAID的使用 RAID的常用方案:RAID 0 、RAID 1、RAID5、RAID10、 RAID 0 至少需要两块硬盘,能够有效的提升数据的吞吐速度、但是不具备数据备份和错误修复能力。任意一块盘故障都会导致数据受到损坏。 RAID 1 至少需要两块盘,两块盘互为备份,实际存储量只有两块盘总量的50%; 如果使用3块盘做RAID 1利用率就只有33%,以此类推。理论上RAID可以坏一半数量的硬盘保证数据不会被损坏。 RAID 5 RAID5是把硬盘设备的数据

fengxiwutong369的博客 305

【个人学习总结】CRC校验原理及实现

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 ..................

星Yeah 的博客 7959

Linux基础学习之Day7-7-LVM快照snapshot

Linux lsof

yyf0430的博客 832

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

运维学习Day16——Linux RAID存储技术、逻辑卷管理与交换空间管理

本文介绍了Linux RAID存储技术,包括其历史背景、实现方式和常见级别。RAID技术通过组合多个磁盘提升性能、可靠性和容错能力,主要分为软RAID、硬RAID和混合RAID三种实现方式。文章详细解析了RAID 0、1、5、6四种常见级别的工作原理、适用场景及优缺点:RAID 0通过条带化提升性能但无冗余;RAID 1通过镜像提供高可靠性;RAID 5结合条带化和单奇偶校验实现性能与冗余平衡;RAID 6采用双重奇偶校验提供更高容错能力。不同RAID级别适用于不同数据存储需求,需根据性能、可靠性和成本综合

zzhmyhx的博客 1317

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Linux就该这么学——Day7

7.1 RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列) 1988 年,加利福尼亚大学伯克利分校首次提出并定义了 RAID 技术的概念。RAID 技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。但是它也相应地提高了成本支出。 7.1.1 RAID

MiLK_iro的博客 324

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux云计算 |【第一阶段】ENGINEER-DAY3

LVM逻辑卷管理、VDO、RAID磁盘阵列、进程管理

小安的运维专栏 1357

Linux基础学习之Day7-存储基础知识

Linux 存储日常

yyf0430的博客 248

第一阶段(admin02-day02)逻辑卷,RAID磁盘,系统修复,SElinux

第一阶段(admin02-day02)逻辑卷,RAID磁盘,系统修复,SElinux

weixin_72495652的博客 685

LINUX从零开始——ENGINEER(云计算应用管理)——Day3 [逻辑卷管理、RAID磁盘阵列、进程管理]

一、环境准备 1.建议还原快照,开启CentOS7虚拟机,以root用户登录 课前回顾: 1.划分新的分区的命令是什么? fdisk parted 2.一般在磁盘中一个扇区为多少字节? 512字节 3.Linux中新硬盘经历哪些步骤才能存储文档? 识别硬盘----》分区规划----》格式化----》挂载使用 4.MBR常见的分区类型有那三种? 主分区 扩展分区 逻辑分区 5.刷新分区表...

hufei_的博客 935

大数据兼云计算(王明龙)讲师-LINUX-DAY09-QUOTA-RAID-LVM

一.Quota磁盘配额 1.用户做磁盘配额 fdisk /dev/sdb mkfs.xfs /dev/sdb5 mkdir /sdb5 vim /etc/fstab //在defaluts后面添加对用户与用户组的磁盘配额 defaults,usrquota,grpquota mount -a mount /dev/sdb5 /sdb5 m...

IT灵魂摆渡者的博客 1045

DAY4:河北科技大学课堂记录–磁盘阵列及rpm包管理

day3复习 1.计划任务 systemctl restart atd at一次性计划任务 crond周期性计划任务 查看一次性计划任务 at -l atq 删除一次性计划任务 atrm 一次性计划任务格式: at time CMD CMD ctrl+d 2. crond周期性计划任务 systemctl restart crond ...

qq_41861146的博客 344

《Linux就该这么学》day3

ps:原谅我的书法出自鲁迅的《野草》 《Linux就该这么学》书本介绍: 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值的Linux实验手册。章节包括有: 第0章 咱们先来谈谈学习方法和红帽系统。 第1章 部署虚拟环境...

149

《Linux就该这么学》day1-day2

ps:原谅我的书法出自鲁迅的《野草》 《Linux就该这么学》书本介绍: 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值的Linux实验手册。章节包括有: 第0章 咱们先来谈谈学习方法和红帽系统。 第1章 部署虚拟环境...

183

Linux运维基础&进阶——PPT汇总

Linux运维基础 admin day1——数据库服务概述、构建Mysql数据库、数据库基本管理 day2——表结构、Mysql键值、总结 day3——数据导入导出、管理表记录、匹配条件、Mysql管理工具 day4——用户授权、完全备份、增量备份 day5——percona软件介绍、innobackupex备份与恢复 engineer day1——Mysql主从同步、主从同步模式 day2...

研究前沿技术,不要轻易掉队。 5255

云计算运维学习 day4--Linux软件包与磁盘管理

摘要:本文系统介绍了Linux软件包管理(源码、RPM、YUM)、磁盘分区/格式化/挂载/逻辑卷管理,并提供了一个基于LAMP架构搭建论坛的综合实践项目。

2302_80987538的博客 276
上一篇: Linux-day6 存储结构与磁盘划分
下一篇: Linux-day10 使用Apache服务部署静态网站
胖可仃
博客等级 码龄10年 6粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值