打印与虚拟化技术全解析
打印管理
在打印管理方面,有几个要点值得关注。首先是打印机计费。打印机计费能让你清晰了解打印资源的使用情况,在中大型的打印环境中,使用打印机计费有助于掌握打印动态。每一个打印任务所产生的额外开销并不重要,关键在于你可以知道是谁在使用打印机。当你计划部署新打印机时,了解打印任务来源的相关信息是很有价值的。
其次,要保障打印机的安全。网络打印机通常支持远程管理,即便没有通用Unix打印系统(CUPS)和Internet打印协议(IPP),你也可以通过超文本传输协议(HTTP),甚至简单网络管理协议(SNMP),使用网页浏览器对打印机进行配置和监控。通过远程接口,你可以设置打印机的IP地址、默认网关、系统日志服务器、SNMP社区名称、协议选项以及管理密码等参数。默认情况下,大多数可远程管理的打印机是未受保护的,在安装过程中必须为其分配密码(或者SNMP“社区字符串”)。打印机制造商的安装手册会详细说明在特定打印机上如何进行这些设置。如今,像CUPS浏览器界面这样的图形用户界面(GUI)管理工具,越来越能够屏蔽不同厂商之间的差异,并且这种趋势还会持续下去。
打印故障排除
在实际使用打印机的过程中,难免会遇到各种问题,以下是一些常见问题的解决建议。
-
重启打印守护进程
:修改配置文件后,务必重启守护进程。不同系统重启cupsd的方式有所不同,常见的方式是使用
/etc/init.d/cups restart
命令。理论上,你也可以向cupsd发送HUP信号,但在SUSE系统中,这样做可能会导致守护进程被终止。此外,你还可以使用CUPS的GUI界面或者其他GUI工具(如KDE打印管理应用程序)来重启cupsd。其他系统可能有各自特定的方法来重置打印系统,例如AIX系统使用以下命令序列:
$ sudo stopsrc -s lpd
$ sudo startsrc -s lpd
-
日志记录
:CUPS维护着三种日志文件,分别是页面日志、访问日志和错误日志。页面日志记录了CUPS打印的页面信息,另外两种日志与Apache的访问日志和错误日志类似,这并不奇怪,因为CUPS服务器本身就是一个Web服务器。
cupsd.conf文件指定了日志级别和日志文件的存储位置,这些日志文件通常存放在/var/log目录下。以下是一个对应单个打印任务的日志文件摘录:
I [26/Jul/2009:18:59:08 -0600] Adding start banner page "none" to job 24.
I [26/Jul/2009:18:59:08 -0600] Adding end banner page "none" to job 24.
I [26/Jul/2009:18:59:08 -0600] Job 24 queued on 'Phaser_6120' by 'jsh'.
I [26/Jul/2009:18:59:08 -0600] Started filter /usr/libexec/cups/filter/pstops (PID 19985) for job 24.
I [26/Jul/2009:18:59:08 -0600] Started backend /usr/libexec/cups/backend/usb (PID 19986) for job 24.
- 直接打印问题 :在CUPS环境下,若要验证与本地打印机的物理连接,你可以直接运行打印机的后端程序。例如,当执行USB连接打印机的后端程序时,会得到如下输出:
$ /usr/lib/cups/backend/usb
direct usb "Unknown" "USB Printer (usb)"
direct usb://XEROX/Phaser%206120?serial=YGG210547 "XEROX Phaser 6120" "Phaser 6120"
当断开XEROX Phaser 6120的USB电缆时,该打印机将从后端程序的输出中消失:
$ /usr/lib/cups/backend/usb
direct usb "Unknown" "USB Printer (usb)"
-
网络打印问题
:在排查网络打印问题之前,要确保能够从实际托管打印机的机器上进行打印,因为所谓的“网络打印问题”可能只是单纯的“打印问题”。同时,要保证网络连接正常。接下来,尝试连接打印机守护进程,你可以使用网页浏览器(输入
hostname:631)或者telnet命令(telnet hostname 631)来连接cupsd。网络行式打印机守护进程(lpd)的打印任务通过TCP端口515传输,为了避免为陌生人打印任务,防火墙应阻止来自互联网对该端口的所有流量。若要测试与远程lpd服务器的连接,可以使用telnet命令连接服务器的515端口。如果能够建立连接,至少可以确认网络正常且服务器上的lpd正在运行。如果在调试网络打印机连接时遇到问题,需要注意以下几点:- 发送机器上的系统日志文件,用于排查名称解析和权限问题。
- 打印服务器上的系统日志文件,用于检查权限问题。
- 发送机器上的日志文件,查找是否存在缺少过滤器、未知打印机、缺少目录等问题。
- 打印服务器上打印守护进程的日志文件,查看有关设备名称错误、格式不正确等信息。
-
打印机器上的打印机日志文件,排查任务传输过程中的错误(在BSD打印系统中,由
/etc/printcap文件中的lf变量指定)。 - 发送机器上的打印机日志文件,查看预处理或排队任务时的错误。
你可以查阅系统文档,确定这些日志文件是否可用以及它们的存储位置。系统日志文件通常在syslog的配置文件
/etc/syslog.conf
中指定,CUPS日志文件的位置则在
/etc/cups/cupsd.conf
中指定。
不同的操作系统发行版可能会遇到特定的打印问题。例如,在Ubuntu系统中,大约每月会有CUPS更新,有些问题较为严重,甚至存在安全隐患。而在一些较旧版本的Red Hat Enterprise Linux中,CUPS可能存在严重问题,最好的解决办法是升级操作系统,如果无法安装新版本,可以尝试安装当前版本的CUPS。
打印相关资源推荐
在学习和使用打印技术的过程中,有许多资源可供参考。每个供应商和GUI都提供了各自独特的打印系统文档。KDE包含了KDEPrint命令的手册页以及KDEPrint手册,你可以在
printing.kde.org
上找到更多相关信息。这些资源都包含了指向其他文档的有用参考,即使你不使用KDE,KDE的文档也是了解CUPS的不错选择。
CUPS自带了大量HTML格式的文档,访问这些文档的一个好方法是连接到CUPS服务器并点击在线帮助链接。当然,如果你正在查阅文档以解决无法连接到CUPS服务器的问题,这种方法就不适用了。在你的计算机上,这些文档通常会以HTML和PDF格式安装在
/usr/share/doc/cups
目录下,如果找不到,可以向发行版的软件包管理器咨询,或者访问
cups.org
。
cups.org
论坛是一个提问的好地方,但提问前要做好功课,并且礼貌提问。
如果你使用的是Linux系统,可以访问
linuxprinting.org
,这是一个丰富的Linux打印资源库,也是解决问题的好起点,该网站还有一个不错的CUPS教程,其中包含故障排除部分。Wikipedia和SUSE都提供了很好的CUPS概述,你可以在
en.opensuse.org/SDB:CUPS_in_a_Nutshell
找到SUSE的相关内容。如果你需要一本印刷版的CUPS参考手册,推荐《CUPS: Common UNIX Printing System》,作者是Michael R. Sweet,由Sams Publishing于2001年出版。
虚拟化技术概述
随着企业数据中心不断增加服务器以满足现代业务对信息的巨大需求,系统管理员面临着一个技术难题:如何更高效地管理现有系统,在满足用户需求的同时,节省电力、空间和冷却成本?过去,软件供应商通常不鼓励管理员将他们的应用程序与其他软件一起运行,理由是可能存在兼容性问题,甚至在某些情况下会威胁停止对不符合要求的系统提供支持。这导致了大量专用服务器的出现,据最近估计,平均服务器的利用率仅在5%到15%之间,并且随着服务器性能的提升,这个数字还在不断下降。
虚拟化技术为这个困境提供了一个解决方案,它允许在同一物理硬件上同时运行多个独立的操作系统。管理员可以将每个虚拟机视为一个独立的服务器,在大多数情况下满足挑剔的软件供应商的要求,同时降低数据中心的成本。如今,多种硬件平台都支持虚拟化技术,虚拟化专用CPU指令的发展以及多核处理器的普及,极大地提高了虚拟化的性能。虚拟服务器易于安装,并且每台服务器所需的维护工作量比物理机器要少。
虚拟化技术的实现方式在多年来发生了巨大变化,但核心概念并非全新的。早在20世纪60年代,IBM在研究分时概念时,就在早期的大型机中使用了虚拟机,通过抽象层让用户共享处理和存储资源。这些技术在20世纪70年代的大型机鼎盛时期得到广泛应用,直到20世纪80年代客户 - 服务器模式的兴起。在20世纪80年代和90年代,虚拟化技术陷入停滞,直到大型服务器农场的成本和管理问题重新引发了对现代系统虚拟化的兴趣。1999年,VMware为英特尔x86架构创建了一个虚拟化平台,引发了当前的虚拟化热潮。
如今,虚拟化技术已经成为一个蓬勃发展的行业,众多供应商纷纷推出独特的产品。VMware仍然是市场的领导者,提供针对各种规模企业的产品,以及支持高度虚拟化组织的管理软件。开源社区推出了Xen项目,该项目由XenSource公司提供商业支持,现在XenSource已被Citrix收购。随着Solaris 10的发布,Sun引入了一系列强大的技术,统称为区域(zones)和容器(containers),可以在单个Solaris部署中运行超过8000个虚拟系统。市场上还有许多其他竞争产品,每个产品都有其独特的定位。
虽然本文主要关注服务器虚拟化,但虚拟化的概念同样适用于IT基础设施的许多其他领域,包括网络、存储、应用程序甚至桌面。例如,当使用存储区域网络(SAN)或网络附加存储(NAS)时,可以将磁盘空间池作为一种服务进行分配,根据需求创建额外的空间。将虚拟化应用于桌面对于系统管理员和用户都很有用,可以为每个用户提供定制的应用程序环境。
虚拟化术语解析
虚拟化市场有一套复杂的术语和概念,掌握这些术语是理清各种虚拟化选项的第一步。操作系统通常假设自己完全控制着系统硬件,因此同时运行两个操作系统会导致资源冲突。服务器虚拟化是对计算资源的一种抽象,使操作系统在运行时无需直接了解底层物理硬件。虚拟化软件会分配物理资源,如存储、内存和CPU,并在多个虚拟机之间动态分配这些资源的使用。
UNIX管理员需要了解三种不同的虚拟化范式:全虚拟化、半虚拟化和操作系统级虚拟化。每种范式解决资源争用和硬件访问问题的方式略有不同,并且各有优缺点。
- 全虚拟化 :全虚拟化是目前生产环境中最广泛接受的范式。在这种模式下,操作系统并不知道自己运行在虚拟化平台上。一个被称为“管理程序”(也称为虚拟机监视器)的软件层安装在虚拟机(“客户机”)和硬件之间。这种管理程序也被称为裸金属管理程序,因为它们直接控制物理硬件。管理程序为所有主机硬件设备提供一个模拟层,客户操作系统无需修改。客户机直接向虚拟化硬件发起请求,当客户机内核尝试运行特权指令时,管理程序会拦截并进行适当处理。裸金属虚拟化是最安全的虚拟化类型,因为客户操作系统与底层硬件隔离,而且无需对内核进行修改,客户机可以在不同的底层架构之间移植。只要有虚拟化软件,客户机就可以在任何处理器架构上运行,但CPU指令的翻译会带来一定的性能损失。VMware ESX就是一种流行的全虚拟化技术,其系统的一般结构如下所示:
Guest OS 0
Guest OS 1
Guest OS N
Fully virtualized hypervisor
(e.g., VMWare ESX)
System Hardware
Disk
CPU
Memory
…
- 半虚拟化 :半虚拟化是领先的开源虚拟平台Xen所采用的技术。与全虚拟化一样,半虚拟化允许在一台机器上同时运行多个操作系统。然而,每个操作系统内核必须进行修改,以支持“超调用”,即对某些敏感CPU指令进行翻译。用户空间的应用程序无需修改,可以在Xen机器上原生运行。半虚拟化同样使用管理程序。与全虚拟化系统相比,半虚拟化系统的翻译层开销较小,因此可以带来一定的性能提升。但需要修改客户操作系统是一个明显的缺点,这也是Xen半虚拟化在Linux和其他开源内核之外支持较少的主要原因。半虚拟化环境的结构如下所示:
Guest OS 0 (modified)
Guest OS 1 (modified)
Guest OS N (modified)
Paravirtualized hypervisor
(e.g., Xen, LDoms)
System Hardware
Disk
CPU
Memory
…
Privileged guest (host)
- 操作系统级虚拟化 :操作系统级虚拟化系统与前两种模式有很大不同。它不是在物理系统中创建多个虚拟机环境,而是让操作系统创建多个独立的应用程序环境,这些环境共享同一个内核。操作系统级虚拟化更应该被视为内核的一个特性,而不是一个独立的软件抽象层。由于不存在真正的翻译或虚拟化层,操作系统级虚拟化的开销非常低,大多数实现都能提供接近原生的性能。然而,这种虚拟化类型不允许使用多个操作系统,因为所有客户机(在这种情况下通常称为“容器”)共享同一个内核。AIX工作负载分区以及Solaris的容器和区域就是操作系统级虚拟化的例子,其架构如下所示:
Disk
CPU
Memory
Virtual machine 1
Virtual machine 2
Virtual machine 3
Host Kernel
OS Virtualization
(e.g., Solaris containers,
HP Integrity VM,
IBM workload partitions)
除了上述传统虚拟化范式,还有一种相对较新的技术——云计算。云计算将计算能力作为一种服务提供,通常按小时计费,价格具有吸引力。其最明显的好处是将服务器资源转化为类似于电力或管道的基础设施形式,管理员和开发人员无需看到实际使用的硬件,也无需了解其结构。云计算这个名称源于网络图表中传统上用云轮廓表示互联网。作为系统管理领域的一部分,本文主要关注服务器级的云计算,但实际上应用程序也在向云端迁移,即所谓的软件即服务(SAAS),从电子邮件到商业生产力套件,甚至整个桌面环境都可以外包并独立管理。
此外,AMD和Intel等硬件巨头正在通过硬件辅助(“原生”)虚拟化技术相互竞争,以更好地支持虚拟化。两家公司都推出了包含虚拟化指令的CPU,消除了全虚拟化和半虚拟化中所需的翻译层。如今,所有主要的虚拟化厂商都可以利用这些处理器的特性。
总之,无论是打印管理还是虚拟化技术,都有其独特的特点和挑战。在实际应用中,我们需要根据具体需求选择合适的技术和解决方案,同时不断学习和掌握相关知识,以应对不断变化的技术环境。
打印与虚拟化技术全解析
虚拟化技术的选择与应用建议
面对众多的虚拟化选项,UNIX和Linux管理员在选择适合自己需求的长期方案时可能会感到困惑。以下是一些选择虚拟化技术的建议:
1.
考虑业务需求
-
灵活性要求高
:如果需要在不同硬件架构上轻松迁移虚拟机,全虚拟化是较好的选择,因为它无需修改客户操作系统,具有良好的可移植性。例如,企业可能会根据业务发展更换服务器硬件,采用全虚拟化技术可以确保虚拟机能够顺利迁移到新的硬件上。
-
性能要求高
:对于对性能要求极高的场景,半虚拟化或操作系统级虚拟化可能更合适。半虚拟化通过减少翻译层的开销来提升性能,而操作系统级虚拟化由于共享内核,开销极低,能提供接近原生的性能。比如,一些对计算速度要求苛刻的科学计算项目,采用半虚拟化或操作系统级虚拟化可以更好地满足性能需求。
-
多操作系统支持
:如果需要同时运行多种不同的操作系统,全虚拟化是唯一的选择,因为半虚拟化和操作系统级虚拟化在多操作系统支持方面存在局限性。例如,企业内部既有Windows系统的应用需求,又有Linux系统的应用需求,全虚拟化可以满足这种多样化的需求。
2.
评估成本
-
软件成本
:不同的虚拟化软件有不同的定价策略。一些商业软件如VMware可能需要支付较高的许可证费用,而开源软件如Xen则可以免费使用。企业需要根据自身的预算来选择合适的软件。
-
硬件成本
:某些虚拟化技术对硬件有一定的要求,例如需要支持虚拟化指令的CPU。在选择虚拟化技术时,需要考虑现有的硬件是否满足要求,以及是否需要进行硬件升级。如果硬件成本过高,可能会影响企业的整体投资回报率。
3.
考虑技术支持
-
商业支持
:选择商业虚拟化软件通常可以获得供应商提供的专业技术支持。这对于一些技术实力较弱的企业来说非常重要,可以确保在遇到问题时能够得到及时的帮助。例如,企业在使用VMware时,如果遇到技术难题,可以联系VMware的技术支持团队寻求解决方案。
-
社区支持
:开源虚拟化项目通常有活跃的社区支持。社区成员可以分享经验、提供解决方案,并且可以参与到项目的开发和维护中。例如,Xen项目有一个庞大的开源社区,用户可以在社区中获取各种技术资源和帮助。
虚拟化技术实践操作
以下是一些在常见操作系统上进行虚拟化实践的操作步骤:
1.
安装VMware ESX(全虚拟化示例)
-
准备工作
:确保服务器硬件满足VMware ESX的安装要求,包括CPU支持虚拟化技术、足够的内存和存储等。下载VMware ESX的安装镜像文件。
-
安装过程
- 将安装镜像文件刻录到光盘或制作成USB启动盘。
- 从光盘或USB启动盘启动服务器,进入VMware ESX的安装界面。
- 根据安装向导的提示,选择安装位置、设置网络配置、创建管理员密码等。
- 安装完成后,重启服务器,进入VMware ESX的管理界面。
2.
安装Xen(半虚拟化示例)
-
准备工作
:确保服务器的CPU支持虚拟化技术,并且操作系统是支持Xen的Linux发行版。下载Xen的安装包。
-
安装过程
- 更新系统软件包,确保系统处于最新状态。
- 使用包管理工具(如yum或apt)安装Xen相关的软件包。
- 配置Xen的内核参数,确保系统启动时加载Xen内核。
- 重启服务器,进入Xen的管理界面。
3.
创建Solaris容器(操作系统级虚拟化示例)
-
准备工作
:确保服务器安装了Solaris 10或更高版本的操作系统。
-
创建过程
- 使用
zonecfg
命令创建一个新的Solaris容器配置文件。
- 在配置文件中设置容器的名称、网络配置、资源限制等参数。
- 使用
zoneadm
命令安装和启动容器。
虚拟化技术的未来发展趋势
随着技术的不断进步,虚拟化技术也在不断发展和演变。以下是一些虚拟化技术的未来发展趋势:
1.
与云计算的深度融合
:虚拟化是云计算的基础技术之一,未来虚拟化技术将与云计算更加紧密地结合。云计算提供商将利用虚拟化技术提供更高效、更灵活的云服务,用户可以通过云平台轻松地创建和管理虚拟机。
2.
人工智能与机器学习的应用
:人工智能和机器学习技术将被应用到虚拟化管理中,实现自动化的资源分配、性能优化和故障预测。例如,通过机器学习算法分析虚拟机的性能数据,自动调整资源分配,提高系统的整体性能。
3.
安全性的提升
:随着虚拟化技术的广泛应用,虚拟化环境的安全问题也越来越受到关注。未来,虚拟化技术将加强安全机制,如增强的访问控制、加密技术和安全审计等,以保障虚拟机和用户数据的安全。
4.
硬件与软件的协同发展
:硬件厂商将继续优化CPU、内存和存储等硬件设备,以更好地支持虚拟化技术。同时,软件厂商也将不断改进虚拟化软件,提高性能和功能。硬件与软件的协同发展将推动虚拟化技术不断向前发展。
总结
打印管理和虚拟化技术在现代IT基础设施中都扮演着重要的角色。在打印管理方面,我们需要关注打印机计费、安全设置和故障排除等方面,同时充分利用各种打印相关资源来解决问题和提升效率。在虚拟化技术方面,我们需要了解不同的虚拟化范式,根据业务需求、成本和技术支持等因素选择合适的虚拟化技术,并通过实践操作掌握虚拟化技术的应用。随着技术的不断发展,打印管理和虚拟化技术也将不断创新和完善,为企业的发展提供更强大的支持。
通过本文的介绍,希望读者能够对打印管理和虚拟化技术有更深入的了解,在实际应用中能够灵活运用这些技术,提高工作效率和系统性能。同时,也希望读者能够关注技术的发展趋势,不断学习和掌握新的知识,以适应不断变化的技术环境。
以下是一个简单的mermaid流程图,展示了选择虚拟化技术的基本流程:
graph LR
A[业务需求分析] --> B{灵活性要求高?}
B -- 是 --> C[全虚拟化]
B -- 否 --> D{性能要求高?}
D -- 是 --> E[半虚拟化/操作系统级虚拟化]
D -- 否 --> F{多操作系统支持?}
F -- 是 --> C
F -- 否 --> G[综合考虑成本和技术支持]
G --> H[选择合适的虚拟化技术]
另外,为了更清晰地对比三种虚拟化范式,以下是一个表格总结:
| 虚拟化范式 | 特点 | 优点 | 缺点 | 示例 |
| — | — | — | — | — |
| 全虚拟化 | 操作系统 unaware of 虚拟化平台,有 hypervisor 提供硬件模拟层 | 安全性高,无需修改内核,可移植性好 | CPU 指令翻译有性能损失 | VMware ESX |
| 半虚拟化 | 需修改内核支持 hypercalls,用户空间应用无需修改 | 翻译层开销小,性能有提升 | 需修改客户 OS,支持范围有限 | Xen |
| 操作系统级虚拟化 | 操作系统创建共享内核的多个应用环境 | 开销低,接近原生性能 | 不支持多操作系统 | AIX 工作负载分区,Solaris 容器和区域 |
超级会员免费看
176万+

被折叠的 条评论
为什么被折叠?



