×

虚拟化技术

虚拟化技术有哪些特点?说一说什么是虚拟化

admin admin 发表于2022-09-06 15:51:34 浏览166 评论0

抢沙发发表评论

本文目录

虚拟化技术有哪些特点


分区
  大型的、扩展能力强的硬件能够被用来作为多台独立的服务器使用; 在一个单独的物理系统上,可以运行多个操作系统和应用; 计算资源可以被放置在资源池中,并能够被有效地控制。
  2、隔离
  虚拟化能够提供理想化的物理机,每个虚拟机互相隔离; 数据不会在虚拟机之间泄露;应用只能在配置好的网络连接上进行通讯。
  3、封装
  虚拟单元的所有环境被存放在一个单独文件中; 为应用展现的是标准化的虚拟硬件,确保兼容性; 整个磁盘分区被存储为一个文件,易于备份、转移和拷贝。
  4、硬件独立
  可以在其他服务器上不加修改的运行虚拟机。虚拟技术支持高可用性、动态资源调整,极大地提高系统的可持续运行能力

说一说什么是虚拟化


虚拟化是指计算机元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化技术有哪些


    1. 各种虚拟化技术
      1. 服务器虚拟化
        1. 物理资源抽象成逻辑资源
        2. 一台服务器变成多台,相互独立的虚拟服务器
        3. 不局限物理的界限
        4. 让硬件变成动态管理的资源池
        5. 提高利用率,简化系统管理
      2. 桌面虚拟化
        1. 将计算机的终端系统进行虚拟化
        2. 达到桌面使用的安全性和灵活性
        3. 任何设备时间地方都能通过网络访问属于个人的桌面系统
        4. 并非本地操作系统提供的桌面
      3. 应用程序虚拟化
        1. 将应用程序与操作系统解耦
        2. 为应用程序提供了一个虚拟的环境(可执行文件+运行环境)
        3. 本质是把应用程序对底层的系统和硬件的依赖抽象出来,可以解决程序版本不兼容的问题
        4. 也在后台的数据中心里面
      4. 存储虚拟化
        1. 将异构的存储资源组成一个巨大的存储池
        2. 对于用户,透明化了底层的磁盘磁带,直接使用存储资源即可
        3. 管理变得方便,根据需要把存储资源分配给各个应用
      5. 网络虚拟化
        1. 一个物理网络支持多个逻辑网络
        2. 保留了网络设计中原有的层次结构、数据通道和所能提供的服务
        3. 使得最终用户的体验和独享物理网络一样
        4. 提高了网络资源的利用率
    2. 虚拟化技术的两种类型
      1. Type1:直接在物理硬件上运行,它控制硬件并管理虚拟机,又叫裸机虚拟机管理程序
        1. Linux KVM:开源的虚拟化平台,是为x86机器开发的基于内核的虚拟机,将Linux内核转变成虚拟机管理程序,因此虚拟机可以直接访问硬件,是一种全虚拟化的裸机虚拟化技术。
        2. Vmware ESXi:直接安装在底层物理硬件上的全虚拟化技术

-虚拟化技术

什么是虚拟化技术,为什么要虚拟化技术


一.什么是虚拟化?
简单来讲,虚拟化就是为一些组件创建虚拟(而不是物理)版本的过程。虚拟化可以应用到计算机、操作系统、存储设备、应用或网络。但是,服务器虚拟化才是虚拟化的核心。 现如今的 x86 服务器的设计存在局限性,每次只能运行一个操作系统和应用,这为 IT 部门带来了挑战。因此,即使是小型数据中心也必须部署大量服务器,而每台服务器的容量利用率只有 5% 到 15%,无论以哪种标准来衡量,都十分的低效。
虚拟化使用软件来模拟硬件并创建虚拟计算机系统。这样一来,企业便可以在单台服务器上运行多个虚拟系统,也就是运行多个操作系统和应用,而这可以实现规模经济以及提高效益。
二.为什么要虚拟化?
虚拟化技术能为我们解决很多以前解决不了的技术:
1、服务器整合技术:这个技术在没有虚拟化技术之前是很难完成的。因为什么东西都是实际存在的,想把两个工作相对较少的服务器整合到一起是很困难的。然而当有了虚拟化技术以后使这种服务器整合技术变得非常容易。而这个技术需要借助我下面介绍的2、3条技术。
2、负载均衡技术:
负载均衡技术是只在每台服务器上安装一个负载均衡器,然后设置很多的调度算法及临界值。来判断此时此刻服务器的压力是轻还是重。然后根据轻重来完成服务器的合并,而合并又依据了第三条技术。
3、动态迁移技术:这个技术是前两个技术的根基,但是却不只仅仅限于前两个技术。它的目的是可以在服务器开启的状态下,把其上面的虚拟机迁移到其他的服务器上面。工作原理大体是先将目标服务器上模拟出此服务器的硬件状态,然后迁移数据,最后释放此服务器的信息。
4、克隆技术:这个技术说起来和上面那个技术很像,但是却不一样。克隆技术是把一台服务器的环境配置好了后可以通过克隆技术使其他的机子都达到和这台机子一样的效果,假如要配置100台甚至1000台服务器的话这种克隆技术是非常可观的。它和动态迁移的区别是在服务器不停机的状态下,动态迁移要求迁移的彼此必须是共享内存的,但是克隆并没有这个限制。
5、灾难恢复技术:灾难恢复是所有大型公司必须考虑的问题,因为当一些意外发生时,比如:突然断电,硬件损坏,洪水,地震,等一系列情况是,如何把灾难所造成的数据损失降到最低甚至是不损失。这要依靠第六条技术。
6、虚拟快照技术:虚拟快照技术是将虚拟机此时的状态像照片一样保存下来,当然我说的很容易,其实现原理需要非常复杂,包括cpu运行状态,内存中的数据等等。这样保存下这些虚拟技术当发生灾难或者某些失误导致虚拟机出问题时,可以很快恢复。
7、改善系统可用性。这里的可用性只得是零 down机,在这种情况下我们才可以使得效率最大化。而零down机的前提是每台服务器必须要有一个镜像,在主虚拟机和次虚拟机之间有一条心跳线来维持两者之间的关系,当心跳线停止时,次虚拟机立马启动,代替主虚拟机。
8、安全性:我们直到虚拟化在硬件层上都有一层VMM来时时刻刻侦测每台虚拟机的动向,包括捕获异常,解决门事件,完成调度等等。所以当一些危险因素来临时由于VMM的存在使得我们可以非常快的侦测到这个问题并解决它。这能比以前的硬件层上面直接是操作系统快速很多。-虚拟化技术

看了一些虚拟化的博客,还有文章,发现很多人对于虚拟化技术到底是什么,为什么要使用虚拟化技术还不是很明白。绝大多数人目前理解的虚拟化技术就是把操作系统和硬件分离,一个硬件能够同时运行多个操作系统认为就是虚拟化技术,其实这只是虚拟化技术中很小的一个部分,和很初级的阶段。-虚拟化技术

什么是虚拟化技术?

百度百科中给出的解释其实也是相对片面的:

“ 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。-虚拟化技术

虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。”-虚拟化技术

虽然其强调广义概念,但是在后面的描述上也都是在强调操作系统与硬件的隔离。

gartner给过一个相对简单但是很准确的定义(记不住原文,大概含义):将不同的资源和逻辑单元剥离,形成松耦合的关系的技术。

其实根据计算过程中的逻辑组成部分,将他们的紧耦合,变为松耦合(耦合大家学过软件工程的都应该懂什么意思了吧)。其实“耦合”的概念是计算机领域一直研究的内容:

  • 面向对象的设计讲,不同的类应该是松耦合的,而类内部的信息应该是紧耦合的,这样可以更好地应对需求变化,快速动态地调整,构建新的系统; 

  • web service其实也是将传统的紧耦合功能,转变为可以灵活组织的,像搭积木一样的松耦合关系,使得我们可以将很多大家都需要的功能通用化,我们可以利用不同的服务组合构建我们的应用。

  • 而虚拟化,只是对计算环境这个更高层次的概念进行“松耦合化”,让我们的IT应用就像我们攒机器一样,几个通用的标准模块搭起来就能够成一个满足特定需求的计算环境。

  • 我们可以看到,“松耦合化”是很多很热的技术的主线,之所以它是计算机研究中的重要元素之一,就是因为它会给我们提供更多的灵活性!

    举个简单的比喻:计划经济时代,我们都是每个工厂有自己的食堂,自己的澡堂,托儿所,幼儿园,学校等等,这就好比我们的计算环境,或者是一个软件,所有的组成部分都紧紧的配合在一起,是比较全,对于自己工厂的员工来说很方便;但是对于工厂来说,这个很不经济,成本很高,因为什么都要做,什么都做不好,而且没有规模经济,自然就不好,对于社会来说,浪费非常多。后来市场经济,所有的都专业化了,于是我们一个写字楼的所有人都可以去楼下的食堂吃饭,也可以去别的地方吃饭;洗澡也有专业澡堂了,托儿所与学校也分出去了。这样我们的选择性多了,可以选好的地方或者合适的地方,另外专业化也提高了效率,社会浪费也少了,这就跟我们的web service或者虚拟化一样,每个公司或者个体都是提供一个专业服务,效率高,成本低;而你要做一种事情,可以有多种选择,选择最合适你的,也让你整体成本地,而且更好地完成任务。对于社会来说,浪费少了,而且更灵活了。-虚拟化技术

    世间诸多事情都一脉相通,而诸多厂商所谓的“敏捷IT”,本质上就是利用“松耦合”带来的灵活性来实现的,实现“IT系统的计划经济向市场经济的过渡!”。而这就是为什么,在计算环境层面,我们需要“虚拟化”技术的原因。-虚拟化技术

    但是,计算环境的虚拟化可不仅仅指的是 硬件与操作系统的松耦合,它是更大的一个概念,包含更广泛的内容。


什么是虚拟化技术请说明计算机信息化的概念及资源类型列举虚拟化典型平台并对






摘要
1 虚拟化技术





虚拟化是指为运行的程序或软件营造它所需要的执行环境,在采用虚拟化技术后,程序或软件的运行不再独享底层的物理计算资源,它只是运行在一个完全相同的物理计算资源中,而底层的影响可能与之前所运行的计算机结构完全不同。虚拟化的主要目的是对IT基础设施和资源管理方式的简化。虚拟化的消费者可以是最终用户、应用程序、操作系统、访问资源或与资源交互相关的其他服务。由于虚拟化能降低消费者与资源之间的耦合程度,消费者不再依赖于资源的特定实现,因此在对消费者的管理工作影响最小的基础上,可以通过手工、半自动、或者服务级协定(SLA)等来实现对资源的管理。
-虚拟化技术





1.1 虚拟化的分类





从虚拟化的目的来看,虚拟化技术主要分为以下几个大类:





(1)平台虚拟化(Platform Virtualization),它是针对计算机和操作系统的虚拟化,又分成服务器虚拟化和桌面虚拟化。服务器虚拟化是一种通过区分资源的优先次序,并将服务器资源分配给最需要它们的工作负载的虚拟化模式,它通过减少为单个工作负载峰值而储备的资源来简化管理和提高效率。桌面虚拟化是为提高人对计算机的操控力,降低计算机使用的复杂性,为用户提供更加方便适用的使用环境的一种虚拟化模式。平台虚拟化主要通过CPU虚拟化、内存虚拟化和I/O接口虚拟化来实现。
-虚拟化技术





(2)资源虚拟化(Resource Virtualization),针对特定的计算资源进行的虚拟化,例如,存储虚拟化、网络资源虚拟化等。存储虚拟化是指把操作系统有机地分布于若干内外存储器,两者结合成为虚拟存储器。网络资源虚拟化最典型的是网格计算,网格计算通过使用虚拟化技术来管理网络上的数据,并在逻辑上将其作为一个系统呈现给消费者,它动态地提供了符合用户和应用程序需求的资源,同时还将提供对基础设施的共享和访问的简化。当前,有些研究人员提出利用软件代理技术来实现计算网络空间资源的虚拟化,如Gaia,Net Chaser,Spatial Agent。
-虚拟化技术





(3)应用程序虚拟化(Application Virtualization),它包括仿真、模拟、解释技术等。Java 虚拟机是典型的在应用层进行虚拟化。基于应用层的虚拟化技术,通过保存用户的个性化计算环境的配置信息,可以实现在任意计算机上重现用户的个性化计算环境。服务虚拟化是近年研究的一个热点,服务虚拟化可以使业务用户能按需快速构建应用
-虚拟化技术







咨询记录 · 回答于2021-10-04









什么是虚拟化技术请说明计算机信息化的概念及资源类型列举虚拟化典型平台并对









1 虚拟化技术









虚拟化是指为运行的程序或软件营造它所需要的执行环境,在采用虚拟化技术后,程序或软件的运行不再独享底层的物理计算资源,它只是运行在一个完全相同的物理计算资源中,而底层的影响可能与之前所运行的计算机结构完全不同。虚拟化的主要目的是对IT基础设施和资源管理方式的简化。虚拟化的消费者可以是最终用户、应用程序、操作系统、访问资源或与资源交互相关的其他服务。由于虚拟化能降低消费者与资源之间的耦合程度,消费者不再依赖于资源的特定实现,因此在对消费者的管理工作影响最小的基础上,可以通过手工、半自动、或者服务级协定(SLA)等来实现对资源的管理。
-虚拟化技术









1.1 虚拟化的分类









从虚拟化的目的来看,虚拟化技术主要分为以下几个大类:









(1)平台虚拟化(Platform Virtualization),它是针对计算机和操作系统的虚拟化,又分成服务器虚拟化和桌面虚拟化。服务器虚拟化是一种通过区分资源的优先次序,并将服务器资源分配给最需要它们的工作负载的虚拟化模式,它通过减少为单个工作负载峰值而储备的资源来简化管理和提高效率。桌面虚拟化是为提高人对计算机的操控力,降低计算机使用的复杂性,为用户提供更加方便适用的使用环境的一种虚拟化模式。平台虚拟化主要通过CPU虚拟化、内存虚拟化和I/O接口虚拟化来实现。
-虚拟化技术









(2)资源虚拟化(Resource Virtualization),针对特定的计算资源进行的虚拟化,例如,存储虚拟化、网络资源虚拟化等。存储虚拟化是指把操作系统有机地分布于若干内外存储器,两者结合成为虚拟存储器。网络资源虚拟化最典型的是网格计算,网格计算通过使用虚拟化技术来管理网络上的数据,并在逻辑上将其作为一个系统呈现给消费者,它动态地提供了符合用户和应用程序需求的资源,同时还将提供对基础设施的共享和访问的简化。当前,有些研究人员提出利用软件代理技术来实现计算网络空间资源的虚拟化,如Gaia,Net Chaser,Spatial Agent。
-虚拟化技术









(3)应用程序虚拟化(Application Virtualization),它包括仿真、模拟、解释技术等。Java 虚拟机是典型的在应用层进行虚拟化。基于应用层的虚拟化技术,通过保存用户的个性化计算环境的配置信息,可以实现在任意计算机上重现用户的个性化计算环境。服务虚拟化是近年研究的一个热点,服务虚拟化可以使业务用户能按需快速构建应用
-虚拟化技术









说明Iaas paas saas三种云计算服务模式的区别 并分别进行举例









这个我找一下









???









Copyright © 1999-2020, CSDN.NET, All Rights Reserved









 登录









SaaS、 PaaS和IaaS,云计算三种服务模式的区别 原创









2020-05-14 19:34:51









神马东东2012 









码龄8年









关注









1. SaaS:Software-as-a-Service(软件即服务)









提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等;









2. PaaS:Platform-as-a-Service(平台即服务)









提供给消费者的服务是把客户采用提供的开发语言和工具(例如Java,python, .Net等)开发的或收购的应用程序部署到供应商的云计算基础设施上去。









客户不需要管理或控制底层的云基础设施,包括网络、服务器、操作系统、存储等,但客户能控制部署的应用程序,也可能控制运行应用程序的托管环境配置;









3. IaaS: Infrastructure-as-a-Service(基础设施即服务)









提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。









消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署的应用,也有可能获得有限制的网络组件(例如路由器、,防火墙,、负载均衡器等)的控制。









4.云计算三种服务模式的区别:









SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。普通用户接触到的互联网服务,几乎都是 SaaS。









PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。









IaaS 是云服务的最底层,主要提供一些基础资源。它与 PaaS 的区别是,用户需要自己控制底层,实现基础设施的使用逻辑。






常见的虚拟化技术有哪些


1. KVM :
为完全虚拟化技术,依赖在操作系统上,需要在操作系统上运行,不能直接在物理机上运行,
这种虚拟化必须要求cpu支持虚拟化功能,即虚拟化模块内置在cpu中,因此kvm就不用将cup
和内存全部模拟出来,直接调用物理机cpu和内存只需对它们执行分配操作,使得虚拟机的性
能大大提升,其性能与物理机基本相当,kvm模块是内置在linux系统中的,是系统自带的,无
需再安装。
2.XEN:
半虚拟化,要求客户机系统的内核要知道自己是在虚拟化环境中运行,所以客户机系统架构要和
宿主机或物理机系统架构相同,即需要支持客户机系统内核的修改;支持内核修改的系统必然是
开源系统,而闭源系统就不支持内核修改,例如微软、苹果的操作系统都不开源,不支持xen半
虚拟化技术 ,这是XEN的一大缺陷,3.0版本之后也支持完全虚拟化。
3.KVM与XEN对比:
由于现在大多数CPU都内置虚拟化功能,所以基本都支持KVM虚拟化技术;而XEN虚拟化技术必
须得是开源的操作系统、需要修改客户机系统内核、要保持客户机系统架构和宿主机系统架构一致
,这是XEN的一大致命缺陷,避免不了逐渐被KVM替代,不过3.0版本之后XEN也支持完全虚拟化,
提高了兼容性,由于KVM的火热依然挡不住被KVM替代。
4.VMWARE:
虚拟化VNWARE-esxi 是一个独立的操作系统,直接运行在物理机上,不依赖操作系统,esxi 有自带
的服务端管理服务器,可创建虚拟机,上传镜像文件,此管理服务器不支持虚拟机的移动;但将
vsphere-server安装在window-server2008上可以实现远程服务端管理虚拟机,支持将虚拟机的移动到
另一台物理机上,同样支持虚拟机的创建和iso镜像文件的上传。
5.主流架构平台:
x86_64 arm amd
6.guest os (客户机):
宿主机或物理机上运行的虚拟机
7.KVM使用的主流模拟器QEMU:
模拟键盘、鼠标、显示屏等硬件设备
8.虚拟化使用条件:
vmware是收费的,KVM和XEN是免费的
9.虚拟化CUP指令集所属公司:
vmx是inter的,svm是AMD的,都是cup的一个虚拟指令集
10.虚拟化常用磁盘格式:
1)raw:指定多大空间就创建多大空间,相当于一个占用物理空间的文件,可以直接挂载使用,数据的保存在
磁道上是顺序保存,所以其性能是最好的,但占用的空间是最大的,不利于虚拟机的迁移,KVM和XEN默
认此磁盘格式。
2)qcow2:主流的虚拟化镜像格式,可以在镜像上做多个快照,数据的保存在磁道上是随机的,性能接近RAW磁盘
格式,磁盘占用更小的存储空间,磁盘占用物理空间的大小是随着存入磁盘的数据的增加而增大,虚拟机的迁移比
RAW格式更快捷。
3)vmdk:kvm和XEN等虚拟技术上用的不多,但在vmware-esxi上此镜像格式性能还是相当稳定,比较出色。
-虚拟化技术

什么是虚拟化技术


虚拟技术是一种通过组合或分区现有的计算机资源(CPU、内存、磁盘空间等),使得这些资源表现为一个或多个操作环境,从而提供优于原有资源配置的访问方式的技术。虚拟化就是把物理资源转变为逻辑上可以管理的资源,以打破物理结构之间的壁垒。
虚拟化环境需要多种技术的协调配合:服务器和操作系统的虚拟化、存储虚拟化、以及系统管理、资源管理和软件提交,与非虚拟化环境一致的应用环境。
-虚拟化技术

虚拟化技术包括哪些


1.平台虚拟化(Platform Virtualization),它是针对计算机和操作系统的虚拟化,又分成服务器虚拟化和桌面虚拟化。服务器虚拟化是一种通过区分资源的优先次序...
2.资源虚拟化(Resource Virtualization),针对特定的计算资源进行的...
3.应用程序虚拟化(Application Virtualization),它包括仿真、模拟...
4.表示层虚拟化。在应用上与应用程序虚拟化类似,所不同的是表示层虚拟化中的应用程序运行在服务...
-虚拟化技术

虚拟化的好处都有什么


虚拟化的作用有:
1. 减少服务器的数量,提供一种服务器整合的方法,减少初期硬件采购成本
2. 简化服务器的部署、管理和维护工作,降低管理费用
3. 提高服务器资源的利用率,提高服务器计算能力
4. 通过降低空间、散热以及电力消耗等途径压缩数据中心成本
5. 通过动态资源配置提高IT对业务的灵活适应力
6. 提高可用性,带来具有透明负载均衡、动态迁移、故障自动隔离、系统自动重构的高可靠服务器应用环境
7. 支持异构操作系统的整合,支持老应用的持续运行
8. 在不中断用户工作的情况下进行系统更新
9. 支持快速转移和复制虚拟服务器,提供一种简单便捷的灾难恢复解决方案
扩展资料:
虚拟化这种技术简单来说就是让可以让一个CPU工作起来就像多个CPU并行运行,从而使得在一台电脑内可以同时运行多个操作系统。只有部份Intel 的CPU才支持这种技术。
IntelVT虚拟化技术和多任务(Multitasking)、Hyper-Threading超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,你可以拥有多个独立的操作系统同时运行,每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或虚拟主机(虚拟机)上。而Hyper-Threading超线程只是在SMP系统(SymmetricMultiProcessing)中单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。
当然了,如果一个CPU同时支持Hyper-Threading和虚拟化技术的话,每一个虚拟CPU在各自的操作系统中都被看成是两个对称多任务处理的CPU。
-虚拟化技术

openstack的虚拟化技术有个kvm,什么是kvm什么qemu,libvirt


在所谓的kvm技术中,应用到的其实有2个东西:qemu+kvm
kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备;
qemu是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上服务器虚拟化。
因为用到了上面两个东西,所以一般都称之为qemu-kvm。
libvirt则是调用kvm虚拟化技术的接口用于管理的,用libvirt管理方便,直接用qemu-kvm的接口太繁琐
-虚拟化技术