LVM逻辑卷管理

本次内容

        1、什么是LVM

        2、为什么使用LVM

        3、LVM的操作命令

        4、LVM的具体操作实现

        5、操作中遇到的问题

        6、LVM快照


一、什么是LVM

    LVM:Logical Volume Manager,即逻辑卷管理,它是Linux环境下的一种磁盘管理方式,其功能在于能弹性调整文件系统的容量。LVM中有几个专业名词,重点来说以下一个

    PV:物理卷

        LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

    VG:卷组

        由一个或多个PV构成,为上层的逻辑卷提供空间

    LV:逻辑卷

        类似于磁盘的分区,建立在VG之上,可以再其上面创建文件系统

    PE:PV的基本存储单元,通常大小为4MB

    关系如下图所示:

wKioL1fE6rrzWlosAABEK7N3RX0925.png

    可以理解为将PV打碎成一个个的PE,然后将这所有的PE组合成一个VG,此时VG就由所有的PE构成,创建LV时,就是将PE分配给LV,在LV上面我们可以创建文件系统并挂载使用了。


二、为什么使用LVM

    想象一下,如果当初装机时候你给其中一个分区20G,并且将它挂载在/home目录上,如果有一天,其中的数据太多,20G已经不够用了,这么搞呢,可能也
就是新增加一块硬盘,重新分区并且格式化,然后将/home下的数据完整的复制过来,然后卸载原来的分区,挂载新的分区。好一个繁琐的过程,而且如果下次
空间又满了,还得重新重复以上的步骤。

    此时,LVM的光辉就显现出来了,最大的作用就是在于可以弹性的更改LV的的容量。那么问题来了,它是怎样弹性更改LV的容量,如下图所示

wKioL1fFDgfCfPMtAAB2Ce_YG80172.png

    

    

   

    如果LV的空间不足时,分三种情况:

        1、当VG还有空间时,直接将VG中的PE分配给LV,扩大其容量

        2、如果VG空间分配完毕,应该向VG中增加PV,从而扩展VG的容量,然后步骤同1

        3、如果现有PV使用完,可以将新的分区或者硬盘创建为PV,然后步骤同2


三、LVM的操作命令

    1、PV管理工具

        创建pv
            pvcreate /dev/DEVICE

       显示pv信息
            pvs:简要pv信息显示
            pvdisplay

    2、vg管理工具

        显示卷组
            vgs
            vgdisplay
        创建卷组
            vgcreate [-s #[kKmMgGtTpPeE]] VGNAME PVPATH
        管理卷组
            vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
            vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
        删除卷组
            先做pvmove,再做vgremove

    3、lv管理工具

        显示逻辑卷
            lvs
            Lvdisplay
        创建逻辑卷
            lvcreate-L #[mMgGtT] -n NAME VolumeGroup
        删除逻辑卷
            lvremove/dev/VG_NAME/LV_NAME
        重设文件系统大小
            fsadm[options] resize device [new_size[BKMGTEP]]
            resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

    4、扩展和缩减逻辑卷

        扩展逻辑卷:
            # lvextend-L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
            # resize2fs /dev/VG_NAME/LV_NAME
        缩减逻辑卷:
            # umount/dev/VG_NAME/LV_NAME
            # e2fsck -f /dev/VG_NAME/LV_NAME
            # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
            # lvreduce-L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
            # mount


四、LVM具体是如何实现的

    如何在自己的虚拟机上实现LVM逻辑卷管理?步骤如下;

    1)创建分区并且将分区类型更改为8e

[root@localhost ~]# fdisk /dev/sdb    //对/dev/sdb硬盘进行分区
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sdb: 85.9 GB, 85899345920 bytes, 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009c3cd

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n            //创建一个新的分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-167772159, default 2048):  
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-167772159, default 167772159): +100M
Partition 1 of type Linux and of size 100 MiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e        //更改分区类型为8e
Changed type of partition 'Linux' to 'Linux LVM'    //显示更改为Linux LVM

Command (m for help): p                    //查看一下刚才创建的分区,system类型显示为Linux LVM

Disk /dev/sdb: 85.9 GB, 85899345920 bytes, 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009c3cd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      206847      102400   8e  Linux LVM

Command (m for help): w        //存盘退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partprobe //更新内存信息

    重复上面步骤创建/dev/sdb2,/dev/sdb3

[root@localhost ~]# fdisk /dev/sdb        
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p            //显示分区信息

Disk /dev/sdb: 85.9 GB, 85899345920 bytes, 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009c3cd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      206847      102400   8e  Linux LVM    //现在共有三个LVM类型的分区
/dev/sdb2          206848      411647      102400   8e  Linux LVM
/dev/sdb3          411648      616447      102400   8e  Linux LVM

    2)创建PV

[root@localhost ~]# pvcreate /dev/sdb{1,2,3}    //将/dev/sdb{1,2,3}创建为PV
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created

    3)创建VG

[root@localhost ~]# vgcreate myvg /dev/sdb{1,2}  //将/dev/sdb{1,2}创建为卷组,卷组名为myvg
  Volume group "myvg" successfully created

    4)创建LV

[root@localhost ~]# lvcreate -n mylv -L 100M myvg    //创建大小为100M,名字为mylv的LV
  Logical volume "mylv" created.
[root@localhost ~]# lvdisplay         //查看系统上LV的信息,这里仅仅有且只有一个,即刚刚创建的
  --- Logical volume ---
  LV Path                /dev/myvg/mylv    //路径为/dev/myvg/mylv
  LV Name                mylv              //名称为mylv
  VG Name                myvg              //卷组名为myvg
  LV UUID                OkCyEj-sTkC-6Kch-svPr-UAgv-mQuf-uRofNj
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-08-30 14:46:48 +0800
  LV Status              available
  # open                 0
  LV Size                100.00 MiB        //大小为100MB
  Current LE             25                //LE数量,其实就是PE,因为被分配到了LV里面,所以改叫LE           
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

    5)格式化并挂载使用

[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv //将mylv格式化ext4的文件系统
[root@localhost ~]# mount /dev/myvg/mylv /testdir/    //挂载到/testdir目录下
[root@localhost ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/sda2              41922560  931284  40991276   3% /
devtmpfs                 486140       0    486140   0% /dev
tmpfs                    500664       0    500664   0% /dev/shm
tmpfs                    500664    6936    493728   2% /run
tmpfs                    500664       0    500664   0% /sys/fs/cgroup
/dev/sda3              20961280 3149160  17812120  16% /usr
/dev/sda1                496300  140512    355788  29% /boot
tmpfs                    100136       0    100136   0% /run/user/0
/dev/mapper/myvg-mylv     95054    1550     86336   2% /testdir    //挂载成功!

    6)进入挂载目录并且正常使用

[root@localhost ~]# cd /testdir/    //进入挂载的目录
[root@localhost testdir]# ls
lost+found
[root@localhost testdir]# touch f1    //创建文件
[root@localhost testdir]# ls        //创建成功!
f1  lost+found
[root@localhost testdir]# pwd
/testdir

    如果此分区的空间即将被填满,如何扩展LV的容量?步骤如下

    1)如果VG还有空间

[root@localhost testdir]# lvextend -L +50M /dev/myvg/mylv  //增加50M
  Rounding size to boundary between physical extents: 52.00 MiB
  Size of logical volume myvg/mylv changed from 100.00 MiB (25 extents) to 152.00 MiB (38 extents).
  Logical volume mylv successfully resized.
[root@localhost testdir]# lvs    //简略显示LV的信息
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-ao---- 152.00m   //增加了52M,以为PE是最小存储单元,所以必须是PE的整数倍

     虽然LV显示已经增加,但是已经挂载的目录好像有些问题

[root@localhost testdir]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda2               40G  910M   40G   3% /
devtmpfs               475M     0  475M   0% /dev
tmpfs                  489M     0  489M   0% /dev/shm
tmpfs                  489M  6.8M  483M   2% /run
tmpfs                  489M     0  489M   0% /sys/fs/cgroup
/dev/sda3               20G  3.1G   17G  16% /usr
/dev/sda1              485M  138M  348M  29% /boot
tmpfs                   98M     0   98M   0% /run/user/0
/dev/mapper/myvg-mylv   93M  1.6M   85M   2% /testdir    //容量并没有增加

    此时需要从新设置文件系统的容量

[root@localhost testdir]# resize2fs /dev/myvg/mylv  //重新设置LV的容量
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /testdir; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/myvg/mylv is now 155648 blocks long.

[root@localhost testdir]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda2               40G  910M   40G   3% /
devtmpfs               475M     0  475M   0% /dev
tmpfs                  489M     0  489M   0% /dev/shm
tmpfs                  489M  6.8M  483M   2% /run
tmpfs                  489M     0  489M   0% /sys/fs/cgroup
/dev/sda3               20G  3.1G   17G  16% /usr
/dev/sda1              485M  138M  348M  29% /boot
tmpfs                   98M     0   98M   0% /run/user/0
/dev/mapper/myvg-mylv  144M  1.6M  133M   2% /testdir    //容量成功增加

    2)如果VG空间分配完毕,此时需要向VG中添加PV

[root@localhost testdir]# vgextend myvg /dev/sdb3     //将之前创建的PV/dev/sdb3添加至卷组myvg
  Volume group "myvg" successfully extended
[root@localhost testdir]# vgdisplay  //查看VG的详细信息
  --- Volume group ---
  VG Name               myvg
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               288.00 MiB    //增加了/dev/sdb3的容量,现在为288MB的空间。增加成功!
  PE Size               4.00 MiB
  Total PE              72
  Alloc PE / Size       38 / 152.00 MiB    //已经分配的PE/空间大小
  Free  PE / Size       34 / 136.00 MiB    //空闲的的PE/空间大小
  VG UUID               ObuSOV-RmEg-m2Ec-GIe1-JzhC-E3kd-1XgOP

    VG空间成功增加,以下步骤同上1

    3)如果PV使用完毕,那就创建分区,并且更改分区类型为8e,然后pvcreate。(创建PV时候也可以直接使用磁盘)

[root@localhost testdir]# fdisk /dev/sdc    
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xd7e4d605

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048      206847      102400   8e  Linux LVM        //LVM类型的分区
[root@localhost testdir]# pvcreate /dev/sdc1    //创建/dev/sdc1为PV
  Physical volume "/dev/sdc1" successfully created
[root@localhost ~]# pvcreate /dev/sd{d,e}    //将/dev/sd{d,e}创建为PV
  Physical volume "/dev/sdd" successfully created
  Physical volume "/dev/sde" successfully created

    如果你觉得逻辑卷分配的空间太多了,也可以缩减逻辑卷

    1、卸载LV

[root@localhost ~]# df -h        //查看磁盘挂载信息
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda2               40G  910M   40G   3% /
devtmpfs               475M     0  475M   0% /dev
tmpfs                  489M     0  489M   0% /dev/shm
tmpfs                  489M  6.9M  483M   2% /run
tmpfs                  489M     0  489M   0% /sys/fs/cgroup
/dev/sda3               20G  3.1G   17G  16% /usr
/dev/sda1              485M  138M  348M  29% /boot
tmpfs                   98M     0   98M   0% /run/user/0
/dev/mapper/myvg-mylv  144M  1.6M  132M   2% /testdir     //已使用1.6M,剩余132M可用
[root@localhost ~]# umount /dev/myvg/mylv         //注意:缩减逻辑卷时候必须先卸载

    2、检测文件系统 (如果不执行这一步,直接执行第三步时候会报错)

[root@localhost ~]# e2fsck -f /dev/myvg/mylv 
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/myvg/mylv: 12/37544 files (8.3% non-contiguous), 10390/155648 blocks

    3、重设文件系统的大小

[root@localhost ~]# resize2fs /dev/myvg/mylv 100M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 102400 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 102400 blocks long.

    4、缩减LV的容量

[root@localhost ~]# lvreduce -L 100M /dev/myvg/mylv     //将LV缩减到100M
  WARNING: Reducing active logical volume to 100.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: yes
  Size of logical volume myvg/mylv changed from 152.00 MiB (38 extents) to 100.00 MiB (25 extents).
  Logical volume mylv successfully resized.
[root@localhost ~]# lvs                //查看LV的大小
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 100.00m         //显示100M,缩减成功

    5、重新挂载并查看

[root@localhost ~]# mount /dev/myvg/mylv /testdir/
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda2               40G  910M   40G   3% /
devtmpfs               475M     0  475M   0% /dev
tmpfs                  489M     0  489M   0% /dev/shm
tmpfs                  489M  6.8M  483M   2% /run
tmpfs                  489M     0  489M   0% /sys/fs/cgroup
/dev/sda3               20G  3.1G   17G  16% /usr
/dev/sda1              485M  138M  348M  29% /boot
tmpfs                   98M     0   98M   0% /run/user/0
/dev/mapper/myvg-mylv   93M  1.6M   85M   2% /testdir        //缩减成功!

    注意缩减时候,计算好要缩减的空间大小,缩减的空间大小如果比已经使用的空间还要小,那就会出问题了。而且,为避免文件损坏,缩减时候一定要首先卸载逻辑卷,然后再检查一次文件系统。所以,缩减前最好对原始数据做好备份。


五、操作中遇到的问题

    1、之前创建过RAID或者其他类型的分区时,会出现下图提醒,此时会提示是否输入Y来抹去它,输入Y即创建成功

2016-08-31_093115.png

     2、如果逻辑卷格式化的为ext系列的文件系统,改变文件类型大小的时候,使用resize2fs命令,如果格式化为xfs的文件系统需要使用xfs_growfs。


六、LVM快照

    LVM快照就是先将当时的信息记录下来,这时候并没有发生数据的复制,仅仅是创建了一个快照逻辑卷,当被快照的LV里的数据发生改动时,则原始数据会移动到快照区域,没有改动的数据区域则由快照区和原本的LV共享。

LVM逻辑卷管理

    注意:由于快照区与原本的LV共用很多PE的区块,因此快照去与被快照的LV必须要要在同一个VG上!系统恢复的时候的文件数量不能高于快照区的实际容量。

    

    快照只有在它们和原来的逻辑卷不同时才会消耗空间。
        1、在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
        2、当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。
        3、快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
        4、建立快照的卷大小只需要原始逻辑卷的15%~20%就够了。也可以使用lvextend放大快照。


LVM快照的使用:

    1、在原始LV中创建文件

[root@localhost ~]# lvs    //查看当前lv
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 10.00g                                                    
[root@localhost ~]# vgs    //查看当前vg
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   1   1   0 wz--n- 20.00g 10.00g
[root@localhost testdir]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/sda2              41922560  754800  41167760   2% /
devtmpfs                 486140       0    486140   0% /dev
tmpfs                    500664       0    500664   0% /dev/shm
tmpfs                    500664    6896    493768   2% /run
tmpfs                    500664       0    500664   0% /sys/fs/cgroup
/dev/sda3              20961280 3149280  17812000  16% /usr
/dev/sda1                496300  140512    355788  29% /boot
tmpfs                    100136       0    100136   0% /run/user/0
/dev/mapper/myvg-mylv  10190100   36892   9612536   1% /testdir    //原始LV挂载目录
[root@localhost testdir]# touch f1 f2 f3    //创建3个空文件
[root@localhost testdir]# ls
f1  f2  f3  lost+found

    2、对原始LV进行快照

[root@localhost testdir]# lvcreate -n mylv-snap -s -p r -L 5G /dev/myvg/mylv //-n表示快照LV的名称 -s 表示创建快照LV,-L代表快照LV的大小、 -p r表示未只读,
  Logical volume "mylv-snap" created.
[root@localhost testdir]# mount /dev/myvg/mylv-snap /mnt/snap    //将快照挂载至/mnt/snap
mount: /dev/mapper/myvg-mylv--snap is write-protected, mounting read-only
[root@localhost testdir]# df
Filesystem                  1K-blocks    Used Available Use% Mounted on
/dev/sda2                    41922560  754816  41167744   2% /
devtmpfs                       486140       0    486140   0% /dev
tmpfs                          500664       0    500664   0% /dev/shm
tmpfs                          500664    6896    493768   2% /run
tmpfs                          500664       0    500664   0% /sys/fs/cgroup
/dev/sda3                    20961280 3149280  17812000  16% /usr
/dev/sda1                      496300  140512    355788  29% /boot
tmpfs                          100136       0    100136   0% /run/user/0
/dev/mapper/myvg-mylv        10190100   36888   9612540   1% /testdir
/dev/mapper/myvg-mylv--snap  10190100   36888   9612540   1% /mnt/snap
[root@localhost testdir]# cd /mnt/snap    //cd至此目录
[root@localhost snap]# ls                //查看已有原始LV的f1,f2,f3文件
f1  f2  f3  lost+found

   

    3、测试快照

[root@localhost snap]# echo f1 > /testdir/f1    //向原始LV中添加f1至f1文件中
[root@localhost snap]# cat /testdir/f1        //查看原始LV的f1文件
f1
[root@localhost snap]# cat f1                    //查看快照f1,依然是空文件,快照成功
[root@localhost snap]#

    4、删除快照

[root@localhost ~]# umount /mnt/snap            //首先卸载快照LV
[root@localhost ~]# lvremove /dev/myvg/mylv-snap    //移除快照LV
Do you really want to remove active logical volume mylv-snap? [y/n]: y
  Logical volume "mylv-snap" successfully removed

   

                                                                                               谢谢浏览…

原创文章,作者:我的滑板鞋,如若转载,请注明出处:http://www.178linux.com/42631

(0)
我的滑板鞋我的滑板鞋
上一篇 2016-09-02
下一篇 2016-09-02

相关推荐

  • Shell编程之位置变量

           linux中命令可以接受参数,同样的,shell脚本也可以接受参数。这些参数用$1、$2、$3…$n表示。       $0  表示脚本本身       $1  传递给脚本的第1个参数 $2  传…

    Linux干货 2016-08-12
  • Linux LVM介绍及管理

    什么是LVM? LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。系统管理员可以通过LVM轻松的管理磁盘分区,如:将若干个磁盘分区或物理磁盘连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以…

    Linux干货 2016-08-30
  • 练习-vim的使用

    vi编辑器是linux上最常用的编辑器,vim是vi增强版, 一、vim的几种模式     编辑模式、插入模式、命令行模式     编辑模式:可以进行光标移动,字符删除,行的增删复制粘贴等操作  插入模式:对字符进行编辑,  命令行模式:通过各种命令进行保存,查找,替换,环境设置等操作 &…

    Linux干货 2016-07-04
  • GRUB详解

    GRUB的启动流程: grub: 在centos56中:0.X版本 grub legacy 在centos7中:1.X版本  grub2 grub可分为三个阶段: stage1:mbr前446字节中保存的Boot Loader程序 stage1.5:mbr之后的扇区,让stage1中的Boot Loader能够识别stage2所在的分区上的文件系统…

    Linux干货 2016-09-13
  • netstat命令和ss命令

    详解netstat命令和ss命令

    Linux干货 2018-01-01
  • Linux 入门基础 及一些常见命令(上)

    计算机的组成及其各部分的功能 现代计算机的基本结构是由匈牙利-美国科学家冯· 诺依曼于1946年提出的。迄今为止所有进入实用的电子计算机  都是按冯· 诺依曼提出的结构体系和工作原理设计制造的,故又统称为“冯·诺依曼型计算机". 根据冯.诺依曼原理:计算机由运算器、控制器、存储器、输入设备、输出设备所组成. 运算器: 进行算术与逻辑运算.…

    Linux干货 2016-09-17