精华内容
下载资源
问答
  • Android 存储设备

    千次阅读 2012-06-01 11:27:25
    在最初没有mmc和emmc时候,android基本使用nand,onenand,nor,ecc nor作为存储设备,MTD(Memory Technology Devices)是可以直接在这些原始设备上操作的。android机器启动后,可以通过命令cat proc/mtd,来查看 mtd...

              在最初没有mmc和emmc时候,android基本使用nand,onenand,nor,ecc nor作为存储设备,MTD(Memory Technology Devices)是可以直接在这些原始设备上操作的。android机器启动后,可以通过命令cat proc/mtd,来查看

    mtd设备上的分区信息。 下面是本人中兴u880上的mtd设备信息:

    $ cat proc/mtd
    cat proc/mtd

    dev:    size   erasesize  name
    mtd0: 00080000 00020000 "obm"
    mtd1: 00080000 00020000 "bootloader"
    mtd2: 00040000 00020000 "ramdisk"
    mtd3: 00040000 00020000 "imei"
    mtd4: 00700000 00020000 "arbelbinary"
    mtd5: 00100000 00020000 "msabinary"
    mtd6: 00400000 00020000 "kernel"
    mtd7: 00400000 00020000 "maintenance"
    mtd8: 00500000 00020000 "recovery"
    mtd9: 00040000 00020000 "misc"
    mtd10: 01540000 00020000 "cache"
    mtd11: 09600000 00020000 "system"
    mtd12: 12200000 00020000 "userdata"
    mtd13: 00800000 00020000 "nvm"
    mtd14: 00800000 00020000 "telephony"
    mtd15: 00200000 00020000 "reserved"
    mtd16: 00a00000 00020000 "MRVL_BBM"

           随着,mmc,emmc,CompactFlash等带有FTL(Flash Translate Lay)存储设备的出现,mtd系统已经不能操作

    该类设备,所以如果当前android手机使用emmc等设备作为内部存储设备,当你cat proc/mtd时候,返回的是空的设备清单。由此引发的另外的一个问题是,当android手机通过recovery模式进行OTA进行升级时候,且升级中会对

    boot 或recovery等这些非文件系统分区升级时候,会出现错误,因为老的升级程序还不支持非mtd设备的操作。在升级脚本源码中擦写分区的映射函数WriteRawImageFn是通过mtd_write_data来执行擦写MTD分区。

    展开全文
  • 一位存储研发者的图书清单

    万次阅读 热门讨论 2012-02-26 14:39:37
    所谓“行千里路,读万卷书”,读书应该算作是最好的...闲暇之余,对杂乱无章的书架搞了一下整理工作,顺便选择了其中一部分杂凑成这个图书清单,期望给正在学习之路上的同学们提供一点参考。这个图书清单分为五个类别

    所谓“行千里路,读万卷书”,读书应该算作是最好的学习方式。本人有个不好的习惯,就是不大喜欢看电子书,小论文也喜欢打印出来研读,图书就更不用说了,总是喜欢买书和藏书,尤其是经典图书。时间一久,书架上堆积满了琳琅满目的各种图书,心中突然有种莫名的满足感。闲暇之余,对杂乱无章的书架搞了一下整理工作,顺便选择了其中一部分杂凑成这个图书清单,期望给正在学习之路上的同学们提供一点参考。这个图书清单分为五个类别,即信息存储、数据分析/挖掘、编程/语言/算法、系统/原理/结构/架构、管理/传记/历史。

    [信息存储]

    01 信息存储与管理
    02 SAN存储区域网络
    03 基于对象的网络存储
    04 海量网络存储系统原理与设计
    05 成就存储专家之路
    06 存储技术原理分析
    07 网络存储导论
    08 网络存储技术
    09 数据存储备份与灾难恢复
    10 IP SAN权威指南
    11 数据重现
    12 大话存储I&II
    13 存储网络技术及应用

    [数据分析/挖掘]

    01 数据挖掘教程
    02 数据挖掘
    03 现代数据分析
    04 深入浅出数据分析
    05 集体智慧编程
    06 数据之美
    07 数据挖掘概念与技术
    08 搜索引擎信息检索实践
    09 商业数据挖掘导论
    10 信息论基础
    11 数学模型

    [编程/语言/算法]

    01 代码大全
    02 why Programs Fails - 系统化调试指南
    03 SOA原理.方法.实践
    04 编程之美
    05 算法导论
    06 计算机程序设计艺术(前三卷)
    07 并行算法导论
    08 UNIX环境高级编程
    09 UNlX网络编程(第一卷:套接口API)
    10 UNIX网络编程(第二卷:进程间通信)
    11 C程序设计语言
    12 C语言核心技术
    13 C++程序设计语言
    14 Perl语言编程
    15 PHP编程语言

    [系统/原理/结构/架构]

    00 深入理解计算机系统
    01 深入理解Windows操作系统
    02 程序设计语言原理
    03 编码的奥秘
    04 Unix操作系统设计
    05 分布式系统原理与范型
    06 计算机系统结构:一种定量的方法
    07 用TCP/IP进行网际互连(三卷)
    08 Unix编程艺术
    09 Linux内核设计与实践
    10 深入理解LINUX内核
    11 LINUX设备驱动程序
    12 LINUX内核编程必读
    13 构建嵌入式Linux系统
    14 Linux系统管理技术手册
    15 2011云计算技术发展报告
    16 云计算:深刻改变未来
    17 虚拟化与云计算
    18 云计算核心技术剖析
    19 架构之美
    20 系统分析与设计方法
    21 软件架构的艺术
    22 架构实战一软件架构设计的过程
    23 Head First设计模式

    [管理/传记/历史]

    01 任正非华为管理日志
    02 华为研发
    03 柳传志管理思想日志
    04 再联想:联想国际化十年
    05 未来企业之路
    06 史蒂夫乔布斯传记
    07 马云创业思维
    08 计算机先驱奖
    09 计算机图灵奖
    10 软件随想录
    11 编程大师访谈录
    12 编程人生(15位软件先驱访谈录)
    13 创业者
    14 变革中的思索
    15 观止-微软创建NT和未来的夺命狂奔
    16 走出软件作坊
    17 就这么做产品
    18 就这么做创新
    19 启示录(打造用户喜爱的产品)
    20 IT不再重要
    21 程序开发心理学
    22 系统设计的一般原理
    23 系统化思维导论
    24 成为技术领导者
    25 咨询的奥秘
    26 世界是平的
    27 长尾理论
    28 异类
    29 什么是数学
    30 思维导图
    31 思考的技术
    32 第五项修炼
    33 高效能人士的七个习惯
    34 借力
    35 怪诞行为学
    36 卡耐基社交的艺术
    37 人性的弱点
    38 人性的优点
    39 中国智慧
    40 与未来同行
    41 做最好的自己
    42 爱因斯坦的智慧
    43 暗时间
    44 人生定位
    45 重新定位
    46 简单的力量
    47 定位
    48 什么是战略
    49 商战
    50 全球通史
    51 中国通史
    52 时间简史
    53 万历十五年
    54 中国大历史
    55 浪潮之巅


    展开全文
  • libvirt 如何使用 LVM 存储设备

    千次阅读 2015-01-16 12:02:48
    libvirt 是一组可与 Linux 上多种...为了使虚拟机获得更强大的后端存储能力,libvirt 提供了对各种存储介质的支持,包括本地文件系统,网络文件系统,iSCSI,LVM 等多种后端存储系统。LVM(Linux 卷管理)系统是如
    libvirt 是一组可与 Linux 上多种虚拟机交互的管理工具集。它支持的虚拟机有 KVM/QEMU、Xen、LXC、OpenVZ、virtual Box、vmware ESX/GSX、Hyper-V 等。为了使虚拟机获得更强大的后端存储能力,libvirt 提供了对各种存储介质的支持,包括本地文件系统,网络文件系统,iSCSI,LVM 等多种后端存储系统。LVM(Linux 卷管理)系统是如今 Linux 服务器广泛使用的存储设备。本文阐述的方法适用于 KVM/QEMU 虚拟机,主要涉及在 libvirt
     中使用 LVM 存储设备的方法,使用基于 libvirt 的命令行虚拟机管理工具 virsh。
    libvirt 中的存储管理独立于虚拟机管理。也就是存储池和存储卷的操作独立于虚拟机的操作存在,因此进行存储管理时,不需要有虚拟机的存在,可以当虚拟机需要存储资源时再进行分配,非常灵活。


    libvirt 支持后端存储的类型
    为了将不同的后端存储设备以统一的接口供虚拟机使用,libvirt 将存储管理分为两个方面:存储卷 (volume) 和存储池 (pool)。
    存储卷是一种可以分配给虚拟机使用的存储设备。在虚拟机中与一个挂载点对应,而物理上可以是一个虚拟机磁盘文件或一个真实的磁盘分区。
    存储池是一种可以从中生成存储卷的存储资源,后端可以支持以下存储介质:
    目录池:以主机的一个目录作为存储池,这个目录中包含文件的类型可以为各种虚拟机磁盘文件、镜像文件等。
    本地文件系统池:使用主机已经格式化好的块设备作为存储池,支持的文件系统类型包括 ext2,ext3,vfat 等。
    网络文件系统池:使用远端网络文件系统服务器的导出目录作为存储池。默认为 NFS 网络文件系统。
    逻辑卷池:使用已经创建好的 LVM 卷组,或者提供一系列生成卷组的源设备,libvirt 会在其上创建卷组,生成存储池。
    磁盘卷池:使用磁盘作为存储池。
    iSCSI 卷池:使用 iSCSI 设备作为存储池。
    SCSI 卷池:使用 SCSI 设备作为存储池。
    多路设备池:使用多路设备作为存储池。


    Libvirt 中存储对象的状态转换
    Libvirt 中的三类存储对象:存储池、存储卷、设备的状态转换关系如图 1 所示。
    图 1.libvirt 中存储对象状态转换图
    图 1.libvirt 中存储对象状态转换图
    存储卷从存储池中划分出来,存储卷分配给虚拟机成为可用的存储设备。存储池在 libvirt 中分配的 id 标志着它成为 libvirt 可管理的对象,生成卷组 vg(volume group) 就有了可划分存储卷的存储池,状态为活跃 (active) 状态才可以执行划分存储卷的操作。


    libvirt 使用逻辑卷池的准备
    重新配置和编译
    由于 libvirt 默认编译不支持 LVM,因此需要重新编译 libvirt 方可使用。使用 --with-storage-lvm 选项重新配置 libvirt 源码并重新编译 libvirt:
    清单 1. 重新编译 libvirt
     $./autogen.sh --with-storage-lvm – system 
     $make
    准备生成卷组的物理磁盘
    在 host 中使用 fdisk 工具将物理卷格式化为 Linux LVM 格式(ID 为 8e)。生成的物理卷应为以下格式:
    清单 2. 物理卷格式
     $sudo fdisk -l 
     /dev/sdc1 1 478 963616+ 8e Linux LVM 
     /dev/sdc2             479         957      965664   8e  Linux LVM
    准备生成存储池的 xml 文件
    将 xml 文件放在主机目录 /etc/libvirt/storage 下。以下给出 xml 文件的例子:
    清单 3. 生成存储池的 xml 文件
     <pool type="logical"> 
     <name>lvm_pool</name> 
     <source> 
     <device path="/dev/sdc1"/> 
     <device path="/dev/sdc2"/> 
     </source> 
     <target> 
     <path>/lvm_pool</path> 
     </target> 
     </pool>
    pool 的类型为 logical 表示使用的存储池类型为 LVM,源路径为在 host 中物理卷所在的路径,目的路径为 host 机中生成存储池的目标映射路径,后续生成的逻辑卷将在 host 的该目录下。


    建立 libvirt 存储池
    首次建立存储池
    先由之前的 xml 文件定义一个存储池,若 libvirtd 启动之前 xml 文件已在 /etc/libvirt/storage 目录下,则 libvirtd 启动之后会自动定义存储池,可省去此步。
    清单 4. 定义存储池
     $virsh pool-define /etc/libvirt/storage/lvm_pool.xml
    完成后就会在 libvirt 中定义一个不活跃的存储池,但这个池对应的卷组还未被初始化。可以看到生成的池状态为不活跃的:
    清单 5. 查看卷组的状态
     $virsh pool-list – all 
    名称 状态 自动开始
     ----------------------------------------- 
     default 活动 yes 
     directory_pool 活动 yes 
     lvm_pool            不活跃     no
    建立存储池将生成存储池对应的卷组。
    清单 6. 建立存储池
     $virsh pool-build lvm_pool
    此步完成后, host 上就生成了一个名为 lvm_pool 的卷组。
    清单 7. 查看 host 上生成的卷组
     $sudo vgdisplay 
     --- Volume group --- 
     VG Name lvm_pool 
     System ID 
     Format                lvm2
    以下命令在需要使用存储池时让存储池处于活跃状态
    清单 8. 开始存储池
     $virsh pool-start lvm_pool
    创建存储池
    创建存储池的操作相当于 pool-define 操作和 pool-start 操作的组合,也就是说,创建操作适用于卷组已经生成但还没有在 libvirt 中被管理起来的情况。
    清单 9. 创建存储池
     $virsh pool-create /etc/libvirt/storage/lvm_pool.xml
    清单 10. 完成创建后的状态
     $virsh pool-list 
    名称 状态 自动开始
     ----------------------------------------- 
     default 活动 yes 
     directory_pool 活动 yes 
     lvm_pool            活动     no


    从存储池中分配卷
    存储池为活跃的且已经生成了对应的卷组时,便可从存储池中划分逻辑卷供后续使用。
    清单 11. 创建卷
     $virsh vol-create-as --pool lvm_pool --name vol3 --capacity 30M
    其中 --pool 指定分配逻辑卷所属存储池(卷组),name 指定逻辑卷名称,capacity 指定分配的卷大小。
    清单 12. 查看存储池中的卷组
     virsh # vol-list pic_pool2 
    名称 路径 
     ----------------------------------------- 
     vol1 /dev/lvm_pool/vol1 
     vol2 /dev/lvm_pool2/vol2 
     vol3                 /dev/lvm_pool2/vol3


    在虚拟机中使用卷
    清单 13. 将卷分配给虚拟机
     $virsh attach-disk – domain dom1 – -source /dev/pic_pool2/vol1 – -target sda
    其中 domain 选项指定逻辑卷要附加的虚拟机,source 选项指定逻辑卷在主机的路径,target 指定在虚拟机中的设备名。
    这一步完成之后,重启虚拟机就可以在虚拟机中看到 /dev/sda 设备。在虚拟机中这个 /dev/sda 是一个裸设备,只需要进一步分区格式化就可以挂载使用了。
    清单 14. 查看卷分配是否成功
     $virsh domblklist dom1 
     Target Source 
     ------------------------------------------------ 
     vda /var/lib/libvirt/images/redhat2.img 
     hdc - 
     sda        /dev/pic_pool2/vol3
    清单 15. 将卷从虚拟机上分离
     virsh # detach-disk – -domain dom1 --target sda
    这时在虚拟机上就看不到 /dev/sda 设备了,逻辑卷已从虚拟机中成功分离。


    删除存储池中的卷
    卷被删除之后,卷所对应的存储空间即被归还到存储池内。
    清单 16. 删除存储池中的卷
     virsh # vol-delete vol3 --pool pic_pool2 
    卷 vol3 被删除


    存储池的停用、删除和取消定义
    停用存储池
    存储池停止使用之后,它上面的所有存储卷的状态都变得不可用,即使用它的虚拟机都看不见这个设备。也不能从这个存储池中创建新卷。
    清单 17. 停用存储池
     virsh # pool-destroy pic_pool2 
    销毁池 pic_pool2
    删除存储池
    彻底删除一个存储池后,libvirt 就不再管理这个存储池所对应的所有资源,存储池在 host 机中对应的卷组也被删除。
    清单 18. 删除存储池
     virsh # pool-delete pic_pool2 
    池 pic_pool2 被删除
    取消存储池定义
    即使删除了存储池,它仍然在 libvirt 存储驱动中占有一定的资源,可以看到这个池。
    清单 19. 删除存储池后的状态
     $virsh pool-list – all 
    名称 状态 自动开始
     ----------------------------------------- 
     default 活动 yes 
     directory_pool 活动 yes 
     lvm_pool            不活跃     no
    使用 pool-undefine 取消存储池的定义后,存储池所占用的资源完全被释放,存储驱动器中查看不到该存储池的存在了。
    清单 20. 取消存储池定义

     $virsh pool-undefine lvm_pool

    ps:好文章,分享之,原文链接:http://www.ibm.com/developerworks/cn/linux/l-cn-libvirt-lvm/

    展开全文
  • 简介: 本文阐述了 libvirt 中管理及使用 LVM 存储池的方法,并展示了 qemu 虚拟机使用 LVM 存储的方法。 转载地址:http://www.ibm.com/developerworks/cn/linux/l-cn-libvirt-lvm/index.html 引言 ...

    简介: 本文阐述了 libvirt 中管理及使用 LVM 存储池的方法,并展示了 qemu 虚拟机使用 LVM 存储的方法。

    转载地址:http://www.ibm.com/developerworks/cn/linux/l-cn-libvirt-lvm/index.html


    引言

    libvirt 是一组可与 Linux 上多种虚拟机交互的管理工具集。它支持的虚拟机有 KVM/QEMU、Xen、LXC、OpenVZ、virtual Box、vmware ESX/GSX、Hyper-V 等。为了使虚拟机获得更强大的后端存储能力,libvirt 提供了对各种存储介质的支持,包括本地文件系统,网络文件系统,iSCSI,LVM 等多种后端存储系统。LVM(Linux 卷管理)系统是如今 Linux 服务器广泛使用的存储设备。本文阐述的方法适用于 KVM/QEMU 虚拟机,主要涉及在 libvirt 中使用 LVM 存储设备的方法,使用基于 libvirt 的命令行虚拟机管理工具 virsh。

    libvirt 中的存储管理独立于虚拟机管理。也就是存储池和存储卷的操作独立于虚拟机的操作存在,因此进行存储管理时,不需要有虚拟机的存在,可以当虚拟机需要存储资源时再进行分配,非常灵活。

    libvirt 支持后端存储的类型

    为了将不同的后端存储设备以统一的接口供虚拟机使用,libvirt 将存储管理分为两个方面:存储卷 (volume) 和存储池 (pool)。

    存储卷是一种可以分配给虚拟机使用的存储设备。在虚拟机中与一个挂载点对应,而物理上可以是一个虚拟机磁盘文件或一个真实的磁盘分区。

    存储池是一种可以从中生成存储卷的存储资源,后端可以支持以下存储介质:

    • 目录池:以主机的一个目录作为存储池,这个目录中包含文件的类型可以为各种虚拟机磁盘文件、镜像文件等。
    • 本地文件系统池:使用主机已经格式化好的块设备作为存储池,支持的文件系统类型包括 ext2,ext3,vfat 等。
    • 网络文件系统池:使用远端网络文件系统服务器的导出目录作为存储池。默认为 NFS 网络文件系统。
    • 逻辑卷池:使用已经创建好的 LVM 卷组,或者提供一系列生成卷组的源设备,libvirt 会在其上创建卷组,生成存储池。
    • 磁盘卷池:使用磁盘作为存储池。
    • iSCSI 卷池:使用 iSCSI 设备作为存储池。
    • SCSI 卷池:使用 SCSI 设备作为存储池。
    • 多路设备池:使用多路设备作为存储池。

    Libvirt 中存储对象的状态转换

    Libvirt 中的三类存储对象:存储池、存储卷、设备的状态转换关系如图 1 所示。


    图 1.libvirt 中存储对象状态转换图
    图 1.libvirt 中存储对象状态转换图

    存储卷从存储池中划分出来,存储卷分配给虚拟机成为可用的存储设备。存储池在 libvirt 中分配的 id 标志着它成为 libvirt 可管理的对象,生成卷组 vg(volume group) 就有了可划分存储卷的存储池,状态为活跃 (active) 状态才可以执行划分存储卷的操作。

    libvirt 使用逻辑卷池的准备

    重新配置和编译

    由于 libvirt 默认编译不支持 LVM,因此需要重新编译 libvirt 方可使用。使用 --with-storage-lvm 选项重新配置 libvirt 源码并重新编译 libvirt:


    清单 1. 重新编译 libvirt
    				
     $./autogen.sh --with-storage-lvm – system 
     $make 
    
    

    准备生成卷组的物理磁盘

    在 host 中使用 fdisk 工具将物理卷格式化为 Linux LVM 格式(ID 为 8e)。生成的物理卷应为以下格式:


    清单 2. 物理卷格式
    				
     $sudo fdisk -l 
     /dev/sdc1 1 478 963616+ 8e Linux LVM 
     /dev/sdc2             479         957      965664   8e  Linux LVM 
    

    准备生成存储池的 xml 文件

    将 xml 文件放在主机目录 /etc/libvirt/storage 下。以下给出 xml 文件的例子:


    清单 3. 生成存储池的 xml 文件
    				
     <pool type="logical"> 
     <name>lvm_pool</name> 
     <source> 
     <device path="/dev/sdc1"/> 
     <device path="/dev/sdc2"/> 
     </source> 
     <target> 
     <path>/lvm_pool</path> 
     </target> 
     </pool> 
    

    pool 的类型为 logical 表示使用的存储池类型为 LVM,源路径为在 host 中物理卷所在的路径,目的路径为 host 机中生成存储池的目标映射路径,后续生成的逻辑卷将在 host 的该目录下。

    建立 libvirt 存储池

    首次建立存储池

    先由之前的 xml 文件定义一个存储池,若 libvirtd 启动之前 xml 文件已在 /etc/libvirt/storage 目录下,则 libvirtd 启动之后会自动定义存储池,可省去此步。


    清单 4. 定义存储池
    				
     $virsh pool-define /etc/libvirt/storage/lvm_pool.xml 
    

    完成后就会在 libvirt 中定义一个不活跃的存储池,但这个池对应的卷组还未被初始化。可以看到生成的池状态为不活跃的:


    清单 5. 查看卷组的状态
    				
     $virsh pool-list – all 
    名称 状态 自动开始
     ----------------------------------------- 
     default 活动 yes 
     directory_pool 活动 yes 
     lvm_pool            不活跃     no 
    

    建立存储池将生成存储池对应的卷组。


    清单 6. 建立存储池
    				
     $virsh pool-build lvm_pool 
    

    此步完成后, host 上就生成了一个名为 lvm_pool 的卷组。


    清单 7. 查看 host 上生成的卷组
    				
     $sudo vgdisplay 
     --- Volume group --- 
     VG Name lvm_pool 
     System ID 
     Format                lvm2 
    

    以下命令在需要使用存储池时让存储池处于活跃状态


    清单 8. 开始存储池
    				
     $virsh pool-start lvm_pool 
    

    创建存储池

    创建存储池的操作相当于 pool-define 操作和 pool-start 操作的组合,也就是说,创建操作适用于卷组已经生成但还没有在 libvirt 中被管理起来的情况。


    清单 9. 创建存储池
    				
     $virsh pool-create /etc/libvirt/storage/lvm_pool.xml 
    


    清单 10. 完成创建后的状态
    				
     $virsh pool-list 
    名称 状态 自动开始
     ----------------------------------------- 
     default 活动 yes 
     directory_pool 活动 yes 
     lvm_pool            活动     no 
    

    从存储池中分配卷

    存储池为活跃的且已经生成了对应的卷组时,便可从存储池中划分逻辑卷供后续使用。


    清单 11. 创建卷
    				
     $virsh vol-create-as --pool lvm_pool --name vol3 --capacity 30M 
    

    其中 --pool 指定分配逻辑卷所属存储池(卷组),name 指定逻辑卷名称,capacity 指定分配的卷大小。


    清单 12. 查看存储池中的卷组
    				
     virsh # vol-list pic_pool2 
    名称 路径 
     ----------------------------------------- 
     vol1 /dev/lvm_pool/vol1 
     vol2 /dev/lvm_pool2/vol2 
     vol3                 /dev/lvm_pool2/vol3 
    

    在虚拟机中使用卷


    清单 13. 将卷分配给虚拟机
    				
     $virsh attach-disk – domain dom1 – -source /dev/pic_pool2/vol1 – -target sda 
    

    其中 domain 选项指定逻辑卷要附加的虚拟机,source 选项指定逻辑卷在主机的路径,target 指定在虚拟机中的设备名。

    这一步完成之后,重启虚拟机就可以在虚拟机中看到 /dev/sda 设备。在虚拟机中这个 /dev/sda 是一个裸设备,只需要进一步分区格式化就可以挂载使用了。


    清单 14. 查看卷分配是否成功
    				
     $virsh domblklist dom1 
     Target Source 
     ------------------------------------------------ 
     vda /var/lib/libvirt/images/redhat2.img 
     hdc - 
     sda        /dev/pic_pool2/vol3 
    


    清单 15. 将卷从虚拟机上分离
    				
     virsh # detach-disk – -domain dom1 --target sda 
    

    这时在虚拟机上就看不到 /dev/sda 设备了,逻辑卷已从虚拟机中成功分离。

    删除存储池中的卷

    卷被删除之后,卷所对应的存储空间即被归还到存储池内。


    清单 16. 删除存储池中的卷
    				
     virsh # vol-delete vol3 --pool pic_pool2 
    卷 vol3 被删除
    

    存储池的停用、删除和取消定义

    停用存储池

    存储池停止使用之后,它上面的所有存储卷的状态都变得不可用,即使用它的虚拟机都看不见这个设备。也不能从这个存储池中创建新卷。


    清单 17. 停用存储池
    				
     virsh # pool-destroy pic_pool2 
    销毁池 pic_pool2 
    

    删除存储池

    彻底删除一个存储池后,libvirt 就不再管理这个存储池所对应的所有资源,存储池在 host 机中对应的卷组也被删除。


    清单 18. 删除存储池
    				
     virsh # pool-delete pic_pool2 
    池 pic_pool2 被删除
    

    取消存储池定义

    即使删除了存储池,它仍然在 libvirt 存储驱动中占有一定的资源,可以看到这个池。


    清单 19. 删除存储池后的状态
    				
     $virsh pool-list – all 
    名称 状态 自动开始
     ----------------------------------------- 
     default 活动 yes 
     directory_pool 活动 yes 
     lvm_pool            不活跃     no 
    

    使用 pool-undefine 取消存储池的定义后,存储池所占用的资源完全被释放,存储驱动器中查看不到该存储池的存在了。


    清单 20. 取消存储池定义
    				
     $virsh pool-undefine lvm_pool 
    


    展开全文
  • 在 libvirt 上存储设备管理总结

    千次阅读 2014-07-16 14:26:47
    本文阐述的方法适用于 KVM/QEMU 虚拟机,主要涉及在 libvirt 中使用 LVM 存储设备的方法,使用基于 libvirt 的命令行虚拟机管理工具 virsh。 libvirt 中的存储管理独立于虚拟机管理。也就是存储池和存储卷的...
  • 在过去的几年中,Pwn2Own比赛一直在日本东京的PacSec应用安全会议上举行。...Pwn2Own Tokyo专注于移动手机设备,电视,智能通信设备和无线路由器等设备,这些物理设备使完全线上举办成为问题。但是
  • 重新启动系统后,在命令提示符下执行不带参数的“Openfiles”,即可看到各个进程打开文件的清单。 原因二:文件系统损坏 磁盘上的坏区、其他硬件故障或者软件错误都可能会损坏文件系统,使文件出现问题而无法...
  • 协议将存储设备连接在一起。通过在 IP 网上传送 SCSI 命令和数据, iSCSI 推动了数据在网络之间的传递,同时也促进了数据的远距离管理。由于其出色的数据传输能力, iSCSI 协议被认为是促进存储区域网( SAN )市场...
  • 网络安全等级保护是指对国家重要信息、法人和其他组织及公民的专有信息以及公开信息和存储、传输、处理这些信息的信息系统分等级实行安全保护,对信息系统中使用的信息安全产品实行按等级管理,对信息系统中发生的...
  • Android 权限清单大全

    千次阅读 2014-08-01 10:40:21
    允许程序进行发现和配对新的蓝牙设备 变成砖头 android.permission.BRICK 能够禁用手机,非常危险,顾名思义就是让手机变成砖头 应用删除时广播 android....
  • Android 访问权限清单

    千次阅读 多人点赞 2014-07-31 09:49:13
    允许程序进行发现和配对新的蓝牙设备 变成砖头 android.permission.BRICK 能够禁用手机,非常危险,顾名思义就是让手机变成砖头 应用删除时广播 android....
  • Android AndroidManifest 清单文件所有权限详解每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下。它定义了该应用对于Android系统来说...
  • Android Q分区存储权限变更及适配

    万次阅读 多人点赞 2019-06-30 11:15:46
    在Android Q中引入了分区储存功能,在外部存储设备中为每个应用提供了一个“隔离存储沙盒”。其他应用无法直接访问应用的沙盒文件。由于文件是应用的私有文件,不再需要任何权限即可访问和保存自己的文件。此变更并...
  • 1. 仪器设备清单 数字示波器(500MHz,双通道)// 带 Z 轴输入端子的示波器(100MHz)// 函数发生器(50 MHz,双通道)// 任意波信号发生器(1MHz)// 频谱分析仪(1GHz)// 频率计(500MHz)// 功率分析仪//...
  • 对于拥有本地资源的组织,这可能包括管理数据中心中的物理服务器,存储设备,交换机和虚拟化软件。对于混合或完全基于云的组织,这通常指的是管理相同的虚拟实例。 传播DevOps方法,通常被低估或被完全忽略,但是...
  • 不过随着手机的发展,有些厂商生产的设备将“internal”和“external”都做成了不可卸载的内置存储。在实际开发中文件到底应该存储到哪里,怎么存储经常会困扰我们,笔者为了彻底弄清楚这个问题,就查看了Android...
  • 前端性能优化清单

    千次阅读 2018-01-26 18:36:04
    前端性能优化清单 性能很重要——我们都知道。但是,我们是否真的总是知道我们的性能瓶颈究竟是什么?是昂贵的JavaScript,慢Web字体传递,沉重的图像,或缓慢渲染?是否值得借助交叉口观察员,客户提
  • 每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下。它定义了该应用对于Android系统来说一些非常重要的信息。Android系统需要这些信息...
  • 荣耀6手机apk清单

    千次阅读 2018-02-25 12:35:11
    荣耀6手机apk清单 apk名字 package名字 功能描述 AGPSProvider.apk com.android.providers.apgs GPS定位 不可禁用 AirSharing.apk com.huawei.android.airsharing ...
  • 1、前期准备工作 1.1.各个子系统整体概要设计介绍 ...1.9. 主机集群及存储规划(应用系统提出详细需求) 1.10. OS内核参数规划设计(应用系统提出详细需求) 1.11. 数据库规划设计(应用系统提出详细需求) 3、
  • 清单文件AndroidManifest详解

    千次阅读 2018-03-30 09:41:25
    选择preferExternal,系统会优先考虑将APK安装到SD卡上(当然最终用户可以选择为内部ROM存储上,如果SD存储已满,也会安装到内部存储上)   选择auto,系统将会根据存储空间自己去适应   选择internalOnly是...
  • 各种存储

    千次阅读 2018-03-29 21:37:44
    通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来,之后没有网的时候,会通过离线存储的数据进行页面展示 离线浏览:用户可以在应用离线时使用它们 速度:已缓存资源加载速度快 减少...
  • 每个Android应用都需要一个名为AndroidManifest.xml的程序清单文件,这个清单文件名是固定的并且放在每个Android应用的根目录下。它定义了该应用对于Android系统来说一些非常重要的信息。Android系统需要这些信息...
  • Android Studio Manifest配置清单详解

    千次阅读 2018-07-20 20:26:39
    AndroidManifest,中文名一般称之为清单文件。它描述了应用程序的组件的活动、服务,广播接收机,内容提供商,应用程序组成、应用程序的Java包命名、权限、特性等。每个安卓应用程序必须有一个AndroidManifest.xml...
  • 智慧城市综合管理平台功能清单

    千次阅读 2019-09-12 14:43:13
    智慧城市综合管理平台功能清单 一、九大标准子系统 序号 子系统名称 功能模块备名称 备注 1 无线数据采集子系统 用户管理 ...
  • 所有 Android 设备都有两个文件存储区域:“内部”和...一些设备将永久性存储空间划分为“内部”和“外部”分区,即便没有移动存储介质,也始终有两个存储空间,并且无论外部存储设备是否可移动,API 的行为均一致。
  • 国产数据库清单(2020年第1季度)

    千次阅读 2020-05-07 17:37:17
    通过计算与存储解耦、共享日志存储、软硬件分层优化等革命性的技术变革,大大提升了数据库的易维护性和可用性,同时还拥有非常灵活的横向及纵向扩展能力,兼具开源数据库的简单性和成本效益。 信息来源: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,325
精华内容 16,530
关键字:

存储设备清单