服务器 频道

IBM小型机逻辑分区动态资源调整解决方案

  【IT168 服务器频道】本文详细描述了 IBM 小型机的动态逻辑分区的资源调整功能遇到的问题,由于之前此方面的专题论述很少,相信对大多数遇到类似问题的工程师有非常好的参考意义。同时本文还涵盖了远程控制 HMC,远程图形连接 AIX 系统,安装 ssh,安装 DNS 这些非常有使用价值的内容,相信对很多读者有较大帮助。

  前言

  LPAR 既逻辑分区,指的是将一个物理的服务器划分成若干个虚拟的或逻辑的服务器,每个虚拟的或逻辑的服务器运行自己独立的操作系统,有自己独享的处理器、内存和 I/O 资源。动态逻辑分区 (DLPAR) 允许在不中断应用操作的情况下,增加或减少分区占用的资源。IBM 将这些灵活的技术从大型机(mainframe)平台带到了基于 POWER 4 处理器的 IBM pSeries 平台上从而极大的降低了该技术的价格和成本,到了 POWER 5 处理器,该项技术得到进一步发展,并引入了微分区技术。

  动态逻辑分区的资源调整功能让系统管理员可以自由添加、删除或在分区之间移动系统资源,例如 CPU、内存、I/O 适配器的分配,而不需要像原来修改之后重新启动分区。这样,微分区技术的引入,更使得动态逻辑分区的资源调整功能不但可以移动物理资源,还可移动、增减虚拟资源,具有广阔的应用场景。这样系统管理员就可以根据分区系统负荷和分区业务运行特点,随时将资源动态分配到需要的地方,从而大大提供资源的利用效率和灵活性。

  对于服务器是否可以使用动态 LPAR,是要看安装在服务器上的软件是否支持。

  如果希望实现动态 LPAR 需要在相关的分区安装 AIX 5L 5.2 及以上版本,并且 HMC recovery 软件必须至少是 3.1 版本 ( 或更高 )。

  如果分区运行的是 AIX 5L 5.1 以下版本,动态逻辑分区不可用。每个 LPAR 至少需要一些资源,下面是每个 LPAR 的最小需求:

  Power 4 系列小型机

  " 每个分区至少有一个处理器。

  " 每个分区至少有 256 MB 内存。

  " 每个分区至少有一块硬盘用于安装和存储操作系统 ( 对于 AIX, 做为 rootvg)

  " 每个分区至少有一块硬盘适配器或集成的适配器(含 VIO server 上的虚拟适配器)用于连接硬盘。

  " 每个分区至少有一块网卡(含虚拟网卡)用于每个分区与 HMC 的连接。

  " 每个分区必须有一个安装模式,例如 NIM。

  Power 5 系列小型机

  " 每个分区至少有一个处理器。

  " 每个分区至少有 128MB 内存。

  " 每个分区至少有一块硬盘用于安装和存储操作系统 , 或 VIO server 上提供的 1 块虚拟盘(对于 AIX, 做为 rootvg)

  " 每个分区至少有一块硬盘适配器或集成的适配器(含 VIO server 上的虚拟适配器)用于连接硬盘。

  " 每个分区至少有一块网卡(含虚拟网卡)用于每个分区与 HMC 的连接。

  " 每个分区必须有一个安装模式,例如 NIM。

  Power 4 系列小型机和 Power 5 系列小型机在分区动态资源调整上主要有以下不同,

  " HMC 配置方式不同,Power 4 系列小型机所配 HMC 为 4 版本以下,Power 5 系列小型机配备的 HMC 则为 4 版本以上,不再允许修改 /etc/hosts(除非使用 hscpe 帐号)。

  " Power 5 系列小型机引入了微分区技术 , 微分区同样可以参与资源动态分配。

 

  动态逻辑分区(DLPAR)资源调整常见的问题

  正常情况下,在使用 WSM (Web-based System Manager) 调整动态资源的时候,WSM 的图形界面可以正常的显示和操作。如下图显示:

  Power 5 系列小型机 (图1)

  Power 4 系列小型机 (图2)

  而安装后或运行一段时间后有可能出现以下故障现象:

  " 动态调整资源的菜单不出现(Power 4 小型机更为常见) (图3)

  " 虽然菜单能够出现,但点击没有反应。 (图4)

  " 虽然菜单能够出现,点击出现调整画面,但实际调整资源时报各类错误。 (图5、图6)

  注意报错内容,如调整的是适配器,报错是仍在被使用,则请在使用的分区内先释放(rmdev), 不在本文讨论范围。

  本文讨论的问题,应该对于 2 个系列的小型机均适用,但 p590、p595 很少出现这类现象。

 

  环境说明

  为便于说明问题,我们假设有一台 p690 和一台 p570 的分区动态资源调整功能都出现了问题。

  p690(Power 4+ 处理器)

  机器名  操作系统版本  IP 地址  类型 / 分区

  hmc01 3.5 182.1.1.21 HMC

  app1 AIX 5.2 182.1.1.1 lpar1

  app2 AIX 5.2 182.1.1.2 lpar2

  app3 AIX 5.2 182.1.1.3 lpar3

  app4 AIX 5.2 182.1.1.4 lpar4

  p570(Power 5+ 处理器)

  机器名  操作系统版本  IP 地址  类型 / 分区

  hmc01 5.21 182.1.1.21 HMC

  app1 AIX 5.2 182.1.1.1 lpar1

  app2 AIX 5.2 182.1.1.2 lpar2

  app3 AIX 5.2 182.1.1.3 lpar3

  app4 AIX 5.2 182.1.1.4 lpar4

  vio5 AIX 5.2 182.1.1.5 lpar4

  vio6 AIX 5.2 182.1.1.6 lpar6

  vio7 AIX 5.2 182.1.1.7 lpar7

  vio8 AIX 5.2 182.1.1.8 lpar8

  vio9 AIX 5.2 182.1.1.9 lpar9

  vio10 AIX 5.2 182.1.1.10 lpar10

  准备及相关配置工作

  一般情况下,管理员是通过 HMC 远程来配置服务器的,所以在这里先简单介绍一些配置 WSM 来访问 HMC 的过程。

  以下步骤是为了方便远程管理 HMC(除安装 DNS),远程实现所有操作,其中

  1. WSM 可以进入 HMC 图形控制台。

  2. vnc 可以让 PC 远程图形连接 AIX 主机

  3. ssh 可以远程连接 HMC 的命令行窗口。

  以下的操作都是在 HMC 分区上进行的。

  安装 WSM(Web-based System Manager)

  执行 smitty install->Install and Update Software->Install Software Bundle 选 graphics 即可包含 websm。

  或者安装以下软件包

  sysmgt.websm.apps

  sysmgt.websm.framework

  sysmgt.websm.icons

  sysmgt.websm.rte

  sysmgt.websm.webaccess

  sysmgt.websm.diag

  sysmgt.help.msg.en_US.websm

  sysmgt.help.en_US.websm

  sysmgtlib.framework

  sysmgtlib.libraries

  确认:在图形 console 台上输入 wsm ,出现界面 (图7)

  安装 VNC

  AIX 分区上安装 vnc server

  将 VNC 官方网站 上下载的安装包解压,可得到 4 个文件:

  zlib-1.1.3.2.bff

  zlib-1.1.3.2.bff.asc

  vnc-3.3.3.2.bff

  vnc-3.3.3.2.bff.asc

  用 smitty install_latest 全部安装即可 .

  使用 vncserver 命令启动 vnc 服务器,第一次要求设置口令

  vncpasswd 设置口令

  vncviewer 命令启动 vnc clinet,当客户端一般都安装在管理员的 PC 机上,在 HMC 上无需使用它。

  自己的 PC 上安装 vnc viewer

  这步比较简单,只需从 VNC 官方网站 上下载相应的版本,然后安装,只选择安装 vnc viewer 即可。

  使用

  在 AIX 上执行 vncserver,启动服务,第一次启动标识为 1,如果在不停止服务 1 的情况下再启动 vncserver,标识将变为 2,依次类推。

  [app1][root][/usr/local/bin]>vncserver

  New 'X' desktop is app1: 1

  Starting applications specified in //.vnc/xstartup

  Log file is //.vnc/app1:1.log

  然后在客户机上(即管理员平时使用的机器)启动 vnc viewer , 输入相应的 HMC 的 vnc server 的信息 (图8)

  输入相应的口令 (图9)

  出现了 CDE 界面后,说明 VNC 工作正常。

  安装 SSH

  " 下载:

  从 www.openssh.com 上下载 openssh3.7.1p2x.bff.tar.gz 压缩包。

  " 解压该压缩包

  gzip -cd openssh3.7.1p2x.bff.tar.gz|tar -xvf -

  " 安装该软件包:

  smitty install_latest

  " 连接 HMC:

  cd /usr/local/bin

  ssh -l hscroot hmc01

 

  安装 DNS server

  说明,此步骤只有以下条件才需要进行:

  1. Power 5 系列机型

  2. 检查发现是 HMC 不能正常解析主机名。

  需要创建编辑生成以下 6 个文件,重起服务生效:

  " /etc/named.conf DNS 服务的配置文件

  " /etc/named.ca DNS 服务的缓存文件

  " /etc/0.0.127.in-addr.arpa.zone 本地 ip 域文件,提供了本机的会访地址

  " /etc/1.1.182.in-addr.arpa.zone ip 域文件,提供了 IP 地址到主机名的转换

  " /etc/localhost.zone 本地域文件,提供了本机的会访名称

  " /etc/hmc.net.zone 名称域文件,提供了主机名到 IP 地址的转换

  具体步骤如下:

  1. 编辑 /etc/named.conf

  options {

  directory "/etc";

  };

  zone "." {

  type hint;

  file "named.ca";

  };

  zone "0.0.127.in-addr.arpa" {

  type master;

  file "0.0.127.in-addr.arpa.zone";

  };

  zone "localhost" {

  type master;

  file "localhost.zone";

  };

  zone "hmc.net" {

  type master;

  file "hmc.net.zone";

  };

  zone "1.1.182.in-addr.arpa" {

  type master;

  file "1.1.182.in-addr.arpa.zone";

  };

  2. 编辑 /etc/named.ca

  This file holds the information on root name servers needed to

  initialize cache of Internet domain name servers

  (e.g. reference this file in the "cache .

  configuration file of BIND domain name servers).

  This file is made available by InterNIC

  under anonymous FTP as

  file /domain/named.root

  on server FTP.INTERNIC.NET

  -OR- RS.INTERNIC.NET

  last update: Jan 29, 2004

  related version of root zone: 2004012900

  formerly NS.INTERNIC.NET

  . 3600000 IN NS A.ROOT-SERVERS.NET.

  A.ROOT-SERVERS.NET. 3600000 A 182.1.1.1

  End of File

  3. 编辑 /etc/0.0.127.in-addr.arpa.zone

  $TTL 86400 @ IN SOA localhost. root.localhost. (

  2 ; serial

  28800 ; refresh

  7200 ; retry

  604800 ; expire

  86400 ; ttl

  )

  @ IN NS localhost.

  1 IN PTR localhost.

  1 IN PTR app1.

  4. 编辑 /etc/1.1.182.in-addr.arpa.zone

  $TTL 86400 @ IN SOA app1.hmc.net. root.app1.hmc.net. (

  4 ; serial

  28800 ; refresh

  7200 ; retry

  604800 ; expire

  86400 ; ttl

  )

  @ IN NS app1.hmc.net.

  1 IN PTR app1_182.hmc.net.

  2 IN PTR app2_182.hmc.net.

  3 IN PTR app3_182.hmc.net.

  4 IN PTR app4_182.hmc.net.

  5 IN PTR vio5_182.hmc.net.

  6 IN PTR vio6_182.hmc.net.

  7 IN PTR app7_182.hmc.net.

  8 IN PTR app8_182.hmc.net.

  9 IN PTR app9_182.hmc.net.

  10 IN PTR app10_182.hmc.net.

  5. 编辑 /etc/localhost.zone

  $TTL 86400 @ IN SOA @ root.localhost (

  1 ; serial

  28800 ; refresh

  7200 ; retry

  604800 ; expire

  86400 ; ttl

  )

  IN NS localhost.

  @ IN A 127.0.0.1

  6. 编辑 /etc/hmc.net.zone

  name server data file

  (also see /etc/named.boot)

  NAME TTL CLASS TYPE RDATA

  setting default domain to "."

  $TTL 86400 @ IN SOA app1.hmc.net. root.localhost (

  3 Serial

  3600 Refresh

  300 Retry

  3600000 Expire

  86400 ) Minimum

  IN NS app1.hmc.net.

  hmc01 IN A 182.1.1.21

  app1_182 IN A 182.1.1.1

  app2_182 IN A 182.1.1.2

  app3_182 IN A 182.1.1.3

  app4_182 IN A 182.1.1.4

  vio5_182 IN A 182.1.1.5

  vio6_182 IN A 182.1.1.6

  app7_182 IN A 182.1.1.7

  app8_182 IN A 182.1.1.8

  app9_182 IN A 182.1.1.9

  app10_182 IN A 182.1.1.10

  7. 重新启动 named 服务

  stopsrc -s named

  startsrc -s named

 

  配置 HMC

  通过 WSM 进入 HMC 的图形控制台,选择 HMC Management 的 HMC Configuration 下打开 Customize Network setting 网络设置 ( 通常 Power4 系列小型机配备的 HMC 的 4.5 版本为 HMC maintenace 菜单的下 ),注意选择内网地址。 (图10)

  增加开放 9090 和 22 端口,允许 WSM 和 SSH 访问 (图11)

  同样在 HMC configuration 下启用 HMC 上的"远程命令执行"(remote visual teminal)功能。

  配置 DNS(参前面所述,如果必要)

  同样在 Customize Network setting 网络设置中的 Name Services, 将 DNS enable 打勾,选 Add 增加 DNS 服务器 182.1.1.1,同时在 Identification 下设置名称和域名。 (图12)

  重起 HMC(ssh 未生效时需在 HMC 控制台完成)

  hscroot@localhost:~> hmcshutdown -t now -r

 

  动态 LPAR 的要求

  动态资源调整需要以下配置才能生效

  1. 安装 rsct、csm.client 等软件包,这些都是动态 LPAR 的工具包 , 这些软件包必须要安装在逻辑分区上,否则 DLPAR 无法正常工作。

  软件包类名  软件包名

  SRC bos.rte.SRC

  RSCT 基本包  rsct.basic.*

  RSCT 核心  rsct.core.*

  CSM 核心  csm.core

  CSM 核心  csm.client

  ServiceRM ServiceRM devices.chrp.base.ServiceRM

  DRM DRM devices.chrp.base.rte

  2. rsct_rm 动态 LPAR 服务完全启动,使得分区可以和 HMC 相关服务通信联动,正常情况下安装配置完成后应自动启动。

  Power 5 系列小型机 (AIX5.3) 以下服务必须为活动状态

  ctrmc

  IBM.ERRM

  IBM.HWCTRLRM

  IBM.HostRM

  IBM.ServiceRM

  IBM.CSMAgentRM

  IBM.DRM

  IBM.DMSRM

  IBM.AuditRM

  IBM.LPRM

  Power 4 系列小型机 (AIX5.3) 以下服务必须为活动状态

  ctrmc

  IBM.ERRM

  IBM.HWCTRLRM

  IBM.HostRM

  IBM.ServiceRM

  IBM.CSMAgentRM

  IBM.DRM

  IBM.DMSRM

  IBM.AuditRM

  IBM.LPRM

  3. HMC 和各个分区有网络连接且为同一个 ip 子网。

  当服务处于活动状态之后,为了让分区可以从 HMC 接收动态 LPAR 命令,由于命令都是通过 TCPIP 包传递,分区和 HMC 必须能够互相访问,没有防火墙的阻隔,为简化配置和确保安全起见,一般要求在同一个 ip 子网内。

  4. HMC 和各个分区的主机名能互相解析。

  在 HMC 和分区通信中同样需要能正确解析出主机名,HMC 会定期发送 UDP 包来确认个分区主机名和通信。

  5. 节点号相同没有重名。

  在 RSCT 环境中,ct_node_id 是用来识别不同节点的标识,当不同节点的 ct_node_id 相同时,会导致利用 RSCT 所提供的服务的某些应用工作不正常(DLPAR 就是其中之一)。通常情况下,不同的节点会拥有不同的 ct_node_id 号(该号位于 /etc/ct_node_id 和 /var/ct/cfg 文件中)。如果用户用 alt_disk_install 克隆了一台机器的 rootvg,并安装到另一台机器,则这两台机器就会拥有相同的 ct_node_id 号。

  问题检查及处理

  对于上面描述的几个问题,我们从一下几个方面进行检查和处理:

  检查软件包及处理

  使用命令 lslpp -l 逐一检查。

  lslpp -l rsct.basic.*

  lslpp -l rsct.core.*

  lslpp -l devices.chrp.base.rte

  lslpp -l csm.client

  lslpp -l csm.core

  如发现缺少和版本不匹配,则需补装和升级,AIX 的安装盘可以找到这些基本包,无须另外查找。

  检查网络及处理

  使用资源动态调整,必须让 HMC 和所有的逻辑分区在同一个 IP 子网,并相互之间是可以 ping 通的。

  " 从每个分区操作系统里,ping HMC 地址能 ping 通。

  o 如仅某个分区不能 ping 通,则检查该分区的网卡配置和网络接口

  o 如所有分区都不能 ping 通,则互 ping,能通则检查 HMC 的网络。不通,则检查网络。

  " Power 5 系列小型机:从 HMC 控制台的 HMC Management 菜单下的 Test Network Connectivity 里测试所有分区,都能 ping 通。

  Power 4 系列小型机:从 HMC 控制台的 HMC Mantiance 菜单的 System Configuration 下 Test Network Connectivity 里测试所有分区,都能 ping 通

  o 如仅某个分区不能 ping 通,则检查该分区的网卡配置和网络接口。

  o 如所有分区都不能 ping 通,则检查 HMC 的网卡配置、网络接口。

  需要保证互相都能 ping 通,再进行下一步。

 

  检查主机名及处理

  这一步,由于 Power 5 系列小型机配备的 HMC 不再能修改 /etc/hosts, 所以分开论述:

  Power 5 系列小型机

  分区检查及处理

  在所有的逻辑分区的 /etc/hosts 文件中,要包含同样的主机名与 IP 的对应关系。分区检查用 cat /etc/hosts 即可,发现分区缺失,则可用 vi 等编辑工具修改 /etc/hosts 补上。

  /etc/hosts

  182.1.1.21 hmc01.hmc.net

  182.1.1.1 app1_182.hmc.net

  182.1.1.2 app2_182.hmc.net

  182.1.1.3 app3_182.hmc.net

  182.1.1.4 app4_182 .hmc.net

  182.1.1.5 vio5_182.hmc.net

  182.1.1.6 vio6_182.hmc.net

  182.1.1.7 app7_182.hmc.net

  182.1.1.8 app8_182.hmc.net

  182.1.1.9 app9_182.hmc.net

  182.1.1.10 app10_182.hmc.net

  能否和 hmc 相互 ping 通以及相互解析地址

  HMC 检查及处理

  用 ssh 连接到 HMC 上,察看状态 :

  ssh hscroot@hmc01

  Password:

  Last login: Thu Aug 2 09:39:37 2007 from 182.1.1.3

  hscroot@hmc01:~>lspartition -dlpar

  <#0> Partition:<2*9117-570*657242D, , 182.1.1.1>

  Active:<1>, OS:<AIX, 5.3>, DCaps:<0x2f>, CmdCaps:<0xb, 0xb>, PinnedMem:<633>

  ....

  <#9> Partition:<3*9117-570*657240D, , 182.1.1.10>

  Active:<1>, OS:<AIX, 5.3>, DCaps:<0x2f>, CmdCaps:<0xb, 0xb>, PinnedMem:<583>

  以下情况才算正常:

  " 所有的分区都有显示

  " 分区状态 Active 均为 1

  " 分区 OS 为 AIX5.2 或 AIX5.3

  如不正常,则说明 HMC 不能自动正确解析主机名,不能正确连接上各个 LPAR,需要安装 DNS,见准备工作中的 安装 DNS 和 HMC 相应配置。

  检验测试

  " 在每个分区操作系统里运行:

  host hmc01.hmc.net

  能解析出 182.1.1.21,说明正常。

  host 182.1.1.21

  能解析出 hmc01.hmc.net,说明正常。

  ping hmc01.hmc.net

  能 ping 通,说明正常。

  " 从 HMC 控制台的 HMC Mantiance 菜单的 System Configuration 下 Test Network Connectivity 里测试所有分区的主机名,都能 ping 通,说明正常。

  " HMC 命令行方式:

  host hmc01.hmc.net

  能解析出 182.1.1.21,说明正常。

  host 182.1.1.21

  能解析出 hmc01.hmc.net,说明正常。

  ping hmc01.hmc.net

  能 ping 通,说明正常。

  再执行下面的命令进行确认:

  ssh hscroot@hmc01

  Password:

  Last login: Thu Aug 2 09:39:37 2007 from 182.1.1.3

  hscroot@hmc01:~>lspartition -dlpar

  <#0> Partition:<2*9117-570*657242D, , 182.1.1.1>

  Active:<1>, OS:<AIX, 5.3>, DCaps:<0x2f>, CmdCaps:<0xb, 0xb>, PinnedMem:<633>

  ....

  <#9> Partition:<3*9117-570*657240D, , 182.1.1.10>

  Active:<1>, OS:<AIX, 5.3>, DCaps:<0x2f>, CmdCaps:<0xb, 0xb>, PinnedMem:<583>

  可以看到,所有分区都能正确解析和状态都正常了。

  Power 4 系列小型机

  在 HMC 和所有的逻辑分区的 /etc/hosts 文件中,要包含同样的主机名与 IP 的对应关系。

  " 分区检查用 cat /etc/hosts 即可,发现分区缺失,则可用 vi 等编辑工具修改 /etc/hosts 补上。

  " HMC 需进入 HMC Mantiance 菜单的 System Configuration 下的 Customize Network setting,选择 Hosts,察看分区的主机名和 HMC 名,如发现有不匹配和缺少,请增加(Add)或变更(Change)、删除(Delete),然后 Apply 生效。

  检查测试

  " 从每个分区操作系统里,ping HMC 名地址能 ping 通。

  " 从 HMC 控制台的 HMC Mantiance 菜单的 System Configuration 下 Test Network Connectivity 里测试所有分区的主机名,都能 ping 通。

  rsct_rm 服务检查

  使用 lssrc -g rsct_rm 命令检查 rsct_rm 资源服务组是否启动正常:

  AIX5.3(Power 5)

  Subsystem Group PID Status

  IBM.ERRM rsct_rm 794758 active

  IBM.HWCTRLRM rsct_rm 790660 active

  IBM.HostRM rsct_rm 807054 active

  IBM.ServiceRM rsct_rm 778376 active

  IBM.CSMAgentRM rsct_rm 782484 active

  IBM.DRM rsct_rm 811152 active

  IBM.DMSRM rsct_rm 798872 active

  IBM.AuditRM rsct_rm 720994 active

  IBM.LPRM rsct_rm 245886 active

  AIX5.2(Power 4)

  Subsystem Group PID Status

  IBM.ERRM rsct_rm 979022 active

  IBM.CSMAgentRM rsct_rm 663750 active

  IBM.ServiceRM rsct_rm 684260 active

  IBM.AuditRM rsct_rm 880776 active

  IBM.LPRM rsct_rm 585924 active

  IBM.HostRM rsct_rm 360510 active

  IBM.DRM rsct_rm 1114168 active

  如果发现进程有没有启动的,进行以下的处理:

  " 清除有问题的过程文件

  cd /var/ct

  rm -rf IW

  " 重新运行配置程序:

  /usr/sbin/rsct/install/bin/recfgct

  " 重启 HMC,等待 5-10 分钟,保证所有资源服务都已启动。

  不同逻辑分区的 ct_node_id 号相同

  检查操作:

  正常情况下各个分区的 ID 号应该各不相同,查看 /var/ct/IW/cfg 文件来进行确认。

  [app1][roor][/var/ct/IW/cfg]>cat nodedef.cfg

  1 3341028684 localhost 3341028684 IW 1

  3341028684 即为 ct_node_id

  [app2][roor][/var/ct/IW/cfg]>cat nodedef.cfg

  1 3341036876 localhost 3341036876 IW 1

  3341036876 即为 ct_node_id

  通过运行 /usr/sbin/rsct/install/bin/recfgct 命令来重新生成唯一的 ct_node_id 号,这样就可以解决这个问题。

  总结

  通过以上的检查和处理方法的描述,就可以解决使用资源动态调整菜单和动态调整 CPU、内存、适配器等资源时出现的类似问题。总的来说,如果一步步参照本文的步骤,基本上能解决所有分区的动态资源调整的问题。大多数问题不需要做完全部检查和处理就可完成,本文也是按可能出现的概率顺序写出,请读者注意使用。

 

0
相关文章