介绍:
- 1、Solaris 10 sparc 操作系统是32位还是64位操作系统,最多能管理多大的内存,与操作系统的位数有关系么?
- 2、如何实现Solaris系统的启动和关机
- 3、如何在 Oracle Solaris 11 中执行系统存档和恢复过程
Solaris 10 sparc 操作系统是32位还是64位操作系统,最多能管理多大的内存,与操作系统的位数有关系么?
64位的。
可以通过如下命令来查看,下面是我在我的Solaris 10 Sparc系统(SUN TN2000服务器)上的显示结果:
root:/#isainfo -kv
64-bit sparcv9 kernel modules
如何实现Solaris系统的启动和关机
Solaris 2.x 采用了基于UNIX系统System V Release 4.0标准的灵活的启动过程, 使得很容易产生和定制在各个主机和系统上都通用的启动和关机过程,这与Solaris 1.x所用的简单的BSD风络的启动过程形成了对比,后者缺少针对不同的系统状态的启动脚本的不同组织形式。本章的目的是向读者介绍一些基本术语和初始化参数,它们在将Solaris系统引入到单用户和多用户运行等级或者init状态的过程中扮演了重要角色,其中init状态是非常独特的操作状态,init状态间的切换由init进程管理。阅读本章后,Solaris 2.x的管理员们在诊断他们自已系统的启动和关机过程时就会觉得有些自信了,并且在升级Solaris 1.x系统时,会对启动时各过程的顺序和之间的依赖关系有清楚的理解。
在许多方面,Solaris的启动和关机于许多其它系统有相似性,然而,认识和理解Solaris操作系统于其它服务器不同的特性也是非常重要的。SPARC硬件的一个重要的功能是称为OpenBoot的固件监视系统,它负责启动前的一些重要任务:
• 通过键入下面的字符启动Solaris操作系统:
ok boot
在 OpenBoot 提示符下, 它将启动Solaris 内核 (在 Solaris x86上, boot命令必须通过Primary Boot Subsystem 菜单执行)
• 设置系统配置参数,如启动设备,它可以是几个硬盘之一(由设备的全路径名确定),或者是网络上的一台其它主机,也可以是一个CD-ROM驱动器。
• 通过执行下面这条命令监测网络流量:
ok watch-net
在OpenBoot 提示符下运行
• 对系统设备执行简单的诊断和测试 (例如,检测SCSI总线的终结状态,或者执行称为上电自检的POST(Power-On Self Test POST )检测)
和许多Linux版本带的LILO Linux加载器不一样,OpenBoot不只是一个简单的操作系统加载器,它还允许地启动进程开始前写入、加载和运行用基于堆栈的Forth编程语言写的程序,当为一个大企业定制服务器时,常要求在启动时显示公司的标志而不是缺省的Sun标志,这时,OpenBoot的这一特性就非常有用了,可以生成一个用合适的象素构成的Forth数组,然后运行oem-logo命令。另外,在单用户和多用户init状态中,也可以在启动后对变量的值进行设定,这可以通过以超级用户的身份运行eeprom命令实现。
例如, eeprom 可以用来将启动时自检的RAM改成64M:
L 4-3
server# eeprom selftest-#megs=64
在Solaris x86 系统中,固件不直接支持eeprom 这样的功能: 每个PC厂商有不同的BIOS系统,使得很难做到这一点, 做用替代,用bootenv.rc文件中的变量集仿真内存。
要想看OpenBoot为你的系统中的固件发布的信息,可以下面这一命令::
L 4-4
ok banner
SPARCstation 10, Type 5 Keyboard
ROM Rev. 2.4, 64 MB memory installed, Serial #6745644
Ethernet address 6:3:10:a:cc:4a HostID 5767686
如果OpenBoot的提示符不是ok (如,它显业为),那么只需简单地键入n回到ok提示符:
L 4-5
n
ok
Solaris操作系统的第二个重要特性是通过高效的内核和用户程序模式设计,达到up-time最大化的目的。在一些非Solaris服务器的环境中,每次安装一个新应用时必须重起系统,或者需要重新配置内核。对Solaris系统来说,只在极少的情况下才需重起系统,因为应用程序从逻辑上与系统配置选项是分开的,许多系统级的配置选项可以在超级用户的shell中设置,例如,许多TCP/IP选项可以用下面的命令动动修改:
L 4-6
server# ndd /dev/tcp
在一些比较新的硬件配置中,甚至不需要重起就可以安装新的硬件,这些优点可以减轻系统管员的工作,因此受到新的Solaris管理员的欢迎。
(1)系统V启动过程
从OpenBoot启动后,Solaris有几个不同的操作模式,称为“运行等级”或“init状态”,之所以这么叫是因为常用init命令来改变运行等级,当然也可以用init-wrapper脚本(如关机)。这些init状态可以是单用户的也可以是多用户的,常常每一个状态都代表不同的管理目的,而且是完全不相关的(也就是说,一个系统任何时候只能在一个init状态上)。通常,一个设计成需不定期开机的Solaris系统将完成一系列预先定义好的步骤,以便启动为提供基本系统服务、主要的用户服务和可选应用服务所需的所有软件程序。这些服务一般只在Solaris系统运行在多用户状态时才提供,它们都通过运行控制 ( rc ) shell脚本初始化。通常,在Solaris安装过程中会为管理员自动生成一个运行控制脚本,然而,如果你想安装第三方软件(比如数据库服务器),就需要在/etc/init.d目录下生成你自已的运行控制脚本,以便在系统启动时能自动加载这些服务。本章后面将全面介绍这个过程。
如果因为某些原因(例如,定期的电源损耗)系统需要断电或切换到一个特殊的管理模式来执行诊断测试,也可依据一系列预先定义好的控制脚本来杀死各个服务并保存用户数据。保证这些事件的执行顺序非常重要,因为这样才能保证用户数据的完整性。例如,对数据库服务器的操作通常关系到服务器端的写数据进程和后台的监听进程之间的通信,监听进程负责接受新的信息存储请求。如果这个后台进程没有在写数据进程之前关闭,它可能从网络客户端继续接受数据并将它存在一个已经被数据库关闭的缓存里,这将导致数据库以一种不协调的状态关闭,很可能会引起数据损坏或者记录丢失。图4-1说明了这个过程。Solaris管理员应利用他们的shell脚本知识严格管理系统的关机过程,就象利用运行控制脚本管理系统启动过程那样,这一点非常重要。
管理员应注意三种类型的启动方式。除了在超级用户shell下用下面命令发起的正常重起过程
L 4-7
server# shutdown
重配置启动关系到在 /dev 和 /devices目录下重新组织设备信息,恢复启动关系到在系统对控制台输入的命令不做响应时对毁坏的文件进行保存和分析。在早年的SPARC系统中,当有新的硬盘加入系统时,常需要重新配置启动,在新一些的系统中就可能不需要这么做了,比如E450就有hot-swapping 功能。在超级用户shell下,在发出shuddown命令前输入同的命令就可以执行重配置启动:
L 4-8
server# boot -r
at the OpenBoot monitor prompt, or by issuing the command:
server# touch /reconfigure
虽然在一个巨型系统中,硬件故障、内核模块冲突和不正确的内核参数时有发生,但恢复启动在Solaris系统中极少用到。如果在系统中发生了冲突经常会用堆栈跟踪,它利用内核的诊断器(kadb)可以提供跟踪系统错误原因的重要线索。
运行等级
虽然Solaris有八个init状态,但在正常操作中管理员只用得到其中的五个,它们是:
• 运行等级 S 这是一个用于系统管理任务和修复被损坏的文件系统的单用户init状态,可用这个命令:
server# /usr/sbin/fsck
• 运行等级 2 除了NFS exported network resources,这个运行等级第一次转入多用户状态。
• 运行等级 3 在这个运行等级下,所有的用户都可以登录,并可利用所有系统和NFS网络资源。
• 运行等级6 这个运行等级将停止操作系统运行并开始重起系统。
• 运行等级 0 在这个运行等级下操作系统将关机并确保可安全地关电。
在早一些的SPARC系弘中,要想安装新的硬件,比如磁盘驱动器、外设或内存模块,必须先让系统进入运行等级0,但象E450这样新一些的系统,当新硬盘“热交换”到特定的驱动上去时可以继续在多用户init状态下运行。这也就是说,这些机器可能根本用不着进行运行等级6,而且,连续开机几个月的状况也并不少见。
用户可以很容易地发现系统是在单用户运行等级0、S和多用户运行等级3,运行等级 S下将显示Bourne shell的缺省提示符:
L 4-10
#
运行等级0将显示OpenBoot 的提示符:
L 4-11
ok
运行等级3显示如下提示:
L 4-12
server console login:
要想确定系统当前的运行等级,也可用下面的命令:
L 4-13
server# who -r
who命令的输出也可以通过管道过滤去执行其它命令,具体命令决定与当前的运行等级,例如,如果一个数据库应用要求在本地服务器上有NFS空间,如果当前的运行等级不是3,可以在数据库的初始化脚本中快速地查一下当前的运行等级:
L 4-14
#!/bin/sh
# Determine run-level
set ‘/usr/bin/who -r'
# Check third argument for current run-level
if [ $3 != "3" ]
then
echo 'Error: NFS services are not available under run level 3.'
echo 'NFS Volumes must be available to run this application.'
exit
fi
# else execute database initialization here
在表4-1中列出了所有运行等级,以及它们各自的运行控制脚本目录。
运行等级
描述
用户状态
运行控制脚本目录
硬件管理模式
通过控制台访问
/etc/rc0.d
如何在 Oracle Solaris 11 中执行系统存档和恢复过程
本文所提供的步骤可构成基本灾难恢复计划的核心,也可用于将系统服务迁移到新的引导设备或相同模型但完全不同的系统。注意,不支持将已安装的软件迁移到不同模型的系统。
如果想要下载软件、加入论坛、阅读类似本文的内容之外的其他技术方法精品文章,请成为 OTN 成员。无垃圾邮件!
过程概述
为根池及其关联的数据集以及任何应迁移或恢复的其他 ZFS 池(如存储重要第三方软件或本地用户帐户数据的池)创建一个 ZFS 存档。
要备份和恢复整个系统,应对所有 ZFS 池及其数据集进行存档,如 Oracle Solaris 管理:ZFS 文件系统 指南中所述,同时应对节点所提供服务所需的所有其他非根文件系统或数据进行存档。这可确保所有配置详细信息、第三方软件和其他节点特定的元素(如本地用户帐户和数据)都将在恢复系统上恢复,且恢复到功能齐备的服务状态。本文重点介绍根池。
创建存档之后,可以将其保存在本地可移动介质(如 USB 驱动器)上,也可以通过网络将其发送到文件服务器,以便稍后从该服务器进行检索。当需要利用存档时,可按照以下过程操作:
从 Oracle Solaris 11 安装介质引导恢复系统,启动具有超级用户权限的 shell。
选择和配置启动磁盘设备并创建新的 ZFS 根池。
将存档的 ZFS 数据集恢复到新池。
执行最终配置,然后重新启动系统。
要求和注意事项
任何运行 Oracle Solaris 11 的主机都可以成为此过程的候选者。对于要恢复到新磁盘或系统的系统存档,必须满足以下要求:
存档的系统和恢复系统必须是同一模型且必须满足 Oracle Solaris 11 的最低要求。
将容纳新 ZFS 池的磁盘的总容量至少必须与存档池中分配的空间相同(下面将提供更多详细信息)。
存档系统和恢复系统上都需要根访问权限。
注意,存档将包含位于所存档 ZFS 数据集中的所有软件和配置信息。这包括但不限于以下信息:
操作系统及相关配置和调优
所有引导环境 (BE) 和先前的 ZFS 快照
网络配置,包括主机名、路由信息和名称服务配置
所有本地安装的软件及本地存储的相关数据
本地配置的用户帐户及本地用户数据
区域及相关配置数据
这意味着大多数情况下,在完成以下概述的步骤之后,不需要其他配置操作。
存档映像中不包含任何硬件特定的配置数据。如果要使用此过程移动到相同模型的全新系统,不会随备份一起转移的特定于硬件的系统特征包括(但不限于)以下内容:
磁盘容量和配置(包括 ZFS 池配置)
内存容量和配置
硬件以太网地址
已安装的硬件外围设备
对于已安装的硬件外围设备,应特别注意,如果要恢复的系统利用直接连接的外部存储或特殊的网络硬件(如光纤通道或 InfiniBand 适配器),则需要在恢复系统上安装这些设备以访问该存储。
第 1 阶段:创建存档
本部分介绍需要做的准备工作以及如何创建存档。
准备
要准备恢复,需要记下要存档的每个池的磁盘拓扑结构和 ZFS 池配置。同样,在本文中将重点介绍根池。需要对恢复系统上的目标磁盘进行类似的配置,并且需要相应调整新 ZFS 池的大小。为每个池分配的大小(以下所示的 zpool list 输出中的 ALLOC 列)至少需要确保有充足的空间来还原恢复系统上的数据集。
# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
rpool 68G 51.6G 16.4G 75% 1.00x ONLINE -
如果有任何池的容量(如 CAP 列所示)超过 80%,最佳实践表明应扩大该池以规划容量。根据其他配置元素和工作量的不同,增加池中的空间余量还有益于性能。有关如何管理 ZFS 文件系统及相关性能的更多信息,请参阅 Oracle Solaris 管理:ZFS 文件系统。
为准备稍后的恢复,各种命令的输出应保存到一个文件,与存档一起保存以便恢复期间参考。清单 1 中所示命令只是最低建议,根据系统配置的不同,其他配置信息也可能有用。清单 1 中所示命令及示例输出仅针对根池 (rpool)。
上述被存档系统的信息以及恢复期间可能有用的任何其他信息均应放在一个文件中,该文件与存档文件一起保存以便稍后在恢复期间使用。
也可以使用 Oracle Explorer Data Collector 收集所有系统配置信息以供稍后参考。Oracle Explorer Data Collector 及相关文档可在 MyOracle Support(需要支持合同和登录)中找到。
有关 ZFS 管理和容量规划的其他信息,请参阅 Oracle Solaris 管理:ZFS 文件系统。
创建存档
要对根池进行存档并包括所有快照和 BE,可创建一个 ZFS 复制流。首先,必须从池的顶级创建一个递归快照。同样,可以对需要存档并传给恢复主机的其他池进行存档。
注意,rpool 是默认的根池名称,但在任何给定系统上根池可能有不同的名称。如果要对所有池和数据集进行存档,这不是很重要。然而,如果只需要备份根文件系统或者只需要备份选定的一组 BE,且不清楚它们驻留在哪个池上,可以使用 beadm list -d 命令来确定。此后,使用默认名称 rpool 来引用根池。
以下命令创建根池的一个名为 archive 的递归快照。还可以基于您需要的日期或您期望的任何其他描述性标签选择快照名称。
# zfs snapshot -r rpool@archive
现在已创建递归快照,但应从中删除交换和转储设备快照,因为它们可能不包含与系统迁移或恢复相关的任何数据。而且,删除它们通常会显著降低存档的大小。
以下命令将删除默认命名的交换和转储设备快照,虽然主机上可能部署了其他快照。
注:关于转储设备,尽管转储设备也有可能有数据尚未提取到 /var 数据集(以核心存档的形式),但可能性不大。如果是这种情况,就应保存转储设备的内容,应在删除转储设备快照之前将内容转储到文件系统。详情参见 dumpadm(1M)。
# zfs destroy rpool/swap@archive
# zfs destroy rpool/dump@archive
要确定是否存在默认命名设备之外的其他设备,可使用 swap(1m) 和 dumpadm(1m) 分别列出交换和转储设备的名称。
现在快照准备好了。下一步是将其发送到文件进行存档。如果要存档多个 ZFS 池,每个池将有一个快照,且每个快照将发送到自己的存档文件。同样,在本示例中,以下步骤重点放在创建根池的存档。不过,可用同样的方式对系统上的任何其他池进行存档。
ZFS send 命令以管道方式输出到 gzip 命令,结果产生一个压缩文件,其中包含池快照的存档。创建此存档文件时,使用某个有助于稍后确定存档内容的反映主机名、日期或其他描述性术语的唯一命名方案是一个好主意。
存档文件可以本地保存以便稍后进行重定位,也可以创建在可移动介质上。注意,尽管使用了压缩,本地或文件服务器上仍应有足够的存储空间供存档使用。一个好的经验是有足够的空间容纳 zpool list 报告的 ALLOC 量的总和。
要在本地创建存档文件,可使用以下命令。恢复映像文件名可以是任何有助于识别此存档以便稍后使用的字符串。例如,通常选择使用主机名加日期。
# zfs send -Rv rpool@archive | gzip /path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz
现在应将该存档文件移动到文件服务器以便稍后检索。
还可以选择将存档文件直接写入挂载 NFS 的路径,如下所示。
# zfs send -Rv rpool@archive | gzip /net/FILESERVER/path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz
类似地,可以使用 ssh 以流方式将存档文件发送到文件服务器。
# zfs send -Rv rpool@archive | gzip | ssh USER@FILESEVER "cat /path/to/archive_$(hostname)_$(date +%Y%m%d).zfs.gz"
注意,使用这最后一个选项通过网络以流方式传送存档时,ssh 传输不支持任何暂停和恢复功能。因此,如果网络连接中断,需要重新启动整个命令。
强烈建议在备份的文件系统上存储存档文件。
注意,恢复存档已创建,现在可以删除本地快照了。
# zfs destroy -r rpool@archive
第 2 阶段:从存档恢复
系统引导
只要需要执行系统恢复或系统迁移操作,就可以开始恢复阶段。
首先,需要从 Oracle Solaris 11 安装介质引导恢复系统。用于引导恢复系统的安装介质应与用于构建存档的 Oracle Solaris 11 的版本相同。例如,如果存档是在 Oracle Solaris 11 11/11 主机上创建的,则在此阶段应使用 Oracle Solaris 11 11/11 安装介质。可以从 DVD、USB 设备或网络引导恢复系统。注意,不是从此介质安装系统,相反,此介质仅用于引导系统。引导之后,将在可以开始恢复过程的位置启动 shell。
要从 DVD 或 USB 安装介质引导,请插入介质并选择相应的设备作为引导设备。使用 LiveCD,GNOME 桌面会话可用于恢复过程;一旦桌面启动,可启动一个终端窗口来执行此过程的其余部分。如果使用基于文本的介质,可选择在 Text Installer 菜单出现时退出 shell。
Oracle Solaris 自动安装程序 (AI) 或 AI 介质的本地副本也可以用于引导系统。在 x86 主机上,选择“Text Installer and command line”GRUB 菜单项将运行 Text Installer,可从菜单中选择一个 shell。
类似地,在 SPARC 主机上,引导 AI 介质(从本地或通过网络)而不启动自动安装将允许您从 Text Installer 菜单选择 shell。这可以通过在 SPARC 计算机上的引导提示符处调用以下引导命令来完成:
{0} ok boot net:dhcp
有关如何在 Oracle Solaris 11 中引导系统的更多信息,请参阅系统管理指南:基本管理 中的 x86 和 SPARC 引导信息。
引导设备和根池准备
第一步是配置新的引导磁盘设备。有关如何管理磁盘设备、如何确定引导设备以及如何更改默认引导设备(如有必要),请参阅 OracleSolaris 管理:设备和文件系统 指南以及系统管理指南:基本管理 中的 x86 和 SPARC 引导信息。
注意,如前面所引用的,可复制原来的磁盘布局,也可以使用不同的磁盘布局,只要采取以下步骤并将磁盘开始部分的空间预留给引导数据。此外,根池(或其他恢复目标池)不必与原始池大小相同。不过,新池的大小必须足以包含各自存档文件中的所有数据(即与 zpool list 输出中的 ALLOC 部分大小相等,如前所述)。
一旦选择了引导设备,就可以根据需要基于存档系统上的初始磁盘配置对其进行配置。在此重申,所要求的是最终所创建的 ZFS 池的大小应足以存储数据集,也就是 zpool list 的输出中所显示的 ALLOC 的数值。
format(1M) 命令用于根据需要配置磁盘分区和/或分片。对于引导设备,应使用 VTOC 标签,默认配置为起始于柱 1 的全设备分片 0。作为创建存档的一部分保存的文件可以提供关于如何最好地配置引导设备的指导。
首先从 format 实用程序的菜单选择所需的引导设备,如清单 2 所示。
完成之后,可以根据需要配置分片。清单 3 显示设置全容量(或“全力”)分片 0 的示例,这是默认配置。该分片从柱 1 开始,以便在磁盘开头部分为引导软件留出空间。注意,根据系统架构、磁盘几何及其他变量,分区表可能略有不同。
清单 3:设置全容量分片的示例
注意,如果存档的系统的根池未使用默认名称 rpool,在此应使用其实际名称。尽管使用不同名称的池也能成功完成恢复过程,但产生的 ZFS 文件系统可能会采取不同的挂载点,这可能会造成混乱。因此,应使用与存档 ZFS 池相同的名称创建恢复 ZFS 池。
此时还可以创建恢复存档所需的任何其他 ZFS 池。注意,如果系统上的某个现有池已经使用期望的名称,您需要另选其他名称。有关如何创建 ZFS 池的更多信息,请参阅 Oracle Solaris 管理:ZFS 文件系统 指南。
下一步是从存档文件恢复 ZFS 数据集。如果存档存储在可移动介质上,现在应连接和配置该介质以便可以访问其中的文件。有关如何配置可移动介质的更多信息,请参阅 Oracle Solaris 管理:设备和文件系统 指南。
一旦可以从本地访问存档文件,就可以使用以下命令恢复数据集。
# gzcat /path/to/archive_myhost_20111011.zfs.gz | zfs receive -vF rpool
如果存档文件存储在联网的文件服务器上,可以使用以下命令以流方式获取存档并恢复数据集。
# ssh USER@FILESERVER "cat /path/to/archive_myhost_20111011.zfs.gz" | gzip -d | zfs receive -vF rpool
如果该主机上存档了要恢复的其他池,此时可以使用与以上所示相同的 ZFS 操作恢复这些池。有关如何恢复 ZFS 数据集的其他信息,请参阅 Oracle Solaris 管理:ZFS 文件系统。
本过程的数据恢复部分现已完成。现在必须执行最后几步来确保恢复系统将按照预期方式进行引导。
第 3 阶段:配置和验证
首先,必须创建要用于恢复后系统的交换和转储设备。注意,这里使用的是默认命名的设备,因此无需其他管理任务(例如,使用swap(1m) 命令添加交换设备),因为这些设备已经在使用中并且配置成在引导时与该系统一起运行。如果目标系统的内存配置与存档的系统不同,交换和转储设备可能需要不同的大小,但名称仍与先前的配置相同,因此,这些设备在恢复系统首次引导时会被正确配置。
应按照 Oracle Solaris 管理:设备和文件系统 和 Oracle Solaris 管理:ZFS 文件系统 指南中的建议调整交换和转储设备的大小,大体如下表所示。
一旦激活,beadm list 输出中 BE 的 Active 列将显示 R,表示在重新启动时处于活动状态。这可以通过再次调用 beadm list 来确认。有关 BE 管理的其他信息,请参阅创建和管理 Oracle Solaris 引导环境。
现在可以重新引导系统。除了任何物理拓扑结构、外围设备更改和其他硬件相关更改之外,该系统应与存档系统一样。软件配置和数据以及恢复的任何辅助 ZFS 池应由存档系统继承而来,如上所述。应检查和验证网络配置。如果系统是在新网络上恢复的,或者自创建存档之后与网络有关的配置元素发生了更改,则可能需要某些修改。有关配置的更多信息,请参阅 Oracle Solaris 管理指南。
总结
本文演示了可存档和恢复已安装和配置的 Oracle Solaris 11 主机的一组过程。这些过程可用作整个灾难恢复计划的组成部分,也可用于将Oracle Solaris 11 系统上托管的业务服务迁移到另一个引导设备或相同模型的完全不同的系统。
转载
网友评论
最新评论
,启动具有超级用户权限的 shell。选择和配置启动磁盘设备并创建新的 ZFS 根池。将存档的 ZFS 数据集恢复到新池。执行最终配置,然后重新启动系统。要求和注意事项任何运行 Oracle Solaris 11 的主机都可以成为此过程的候选者。对于要恢复到新磁盘或
作模式,称为“运行等级”或“init状态”,之所以这么叫是因为常用init命令来改变运行等级,当然也可以用init-wrapper脚本(如关机)。这些init状
最后几步来确保恢复系统将按照预期方式进行引导。第 3 阶段:配置和验证首先,必须创建要用于恢复后系统的交换和转储设备。注意,这里使用的是默认命名的设备,因此无需其他管理任务(例如,使用swap(1m) 命令添加交换设备),因为这些设备已经在使用中