Hitachi DCS:DCS系统升级与迁移技术教程.Tex.header_第1页
Hitachi DCS:DCS系统升级与迁移技术教程.Tex.header_第2页
Hitachi DCS:DCS系统升级与迁移技术教程.Tex.header_第3页
Hitachi DCS:DCS系统升级与迁移技术教程.Tex.header_第4页
Hitachi DCS:DCS系统升级与迁移技术教程.Tex.header_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HitachiDCS:DCS系统升级与迁移技术教程1系统升级前的准备1.1评估当前DCS系统状态1.1.1原理在进行HitachiDCS系统升级前,评估当前系统的状态是至关重要的一步。这包括检查硬件的兼容性、软件的版本、系统性能、以及任何可能影响升级过程的潜在问题。评估过程可以帮助确定升级的必要性,识别风险,并为制定升级计划提供依据。1.1.2内容硬件兼容性检查:确保所有硬件组件(如控制器、I/O模块、网络设备)与新版本的DCS软件兼容。软件版本确认:记录当前运行的DCS软件版本,与新版本进行对比,确定升级路径。系统性能分析:使用系统监控工具,如Hitachi的PerformanceMonitor,收集系统运行数据,分析CPU使用率、内存使用、网络延迟等关键指标。问题与风险识别:基于历史维护记录和系统日志,识别任何可能影响升级过程的硬件故障、软件错误或配置问题。1.2制定升级计划1.2.1原理升级计划应详细列出升级步骤、时间表、资源需求、以及在升级过程中和升级后可能遇到的风险和应对措施。计划的制定需要考虑到最小化对生产的影响,确保升级过程的顺利进行。1.2.2内容确定升级窗口:选择生产低峰期进行升级,以减少对生产的影响。分配资源:包括人力资源(如工程师、操作员)、硬件资源(如备用控制器、网络设备)和软件资源(如新版本的DCS软件)。制定详细步骤:从停止系统、安装新软件、配置新系统到重启和验证系统功能,每一步都应有详细的说明。风险评估与应对策略:识别升级过程中可能遇到的问题,如数据丢失、系统崩溃,并准备相应的应对措施。1.3备份数据与配置1.3.1原理在进行任何系统升级前,备份当前系统的所有数据和配置是必要的,以防止在升级过程中数据丢失或配置错误。这包括操作数据、历史数据、系统配置文件等。1.3.2内容操作数据备份:使用HitachiDCS的DataBackup工具,备份所有实时操作数据。历史数据备份:确保历史数据服务器上的所有数据被完整备份,可以使用标准的数据库备份工具。系统配置备份:包括但不限于控制逻辑、报警设置、用户权限等,使用HitachiDCS的ConfigurationBackup工具进行备份。验证备份完整性:备份完成后,应进行验证,确保所有数据和配置都可以被正确恢复。1.4测试环境的搭建1.4.1原理在真实生产环境外搭建一个测试环境,用于模拟升级过程,测试新版本的DCS系统是否能正常运行,以及验证升级后的功能是否符合预期。测试环境应尽可能与生产环境保持一致,以确保测试结果的可靠性。1.4.2内容硬件配置:使用与生产环境相同的硬件配置,包括控制器、I/O模块、网络设备等。软件安装:在测试环境中安装新版本的DCS软件,包括所有必要的更新和补丁。数据与配置恢复:从备份中恢复数据和配置到测试环境,确保测试环境与生产环境的数据一致性。功能测试:模拟生产过程,测试所有关键功能,包括控制逻辑、报警系统、数据采集等,确保升级后的系统功能正常。性能测试:使用PerformanceMonitor等工具,测试升级后系统的性能,包括响应时间、处理能力等,确保系统升级不会降低性能。1.4.3示例假设我们正在测试环境搭建过程中,需要验证控制逻辑的正确性。以下是一个使用HitachiDCS的控制逻辑测试的示例:#假设的控制逻辑验证脚本

deftest_control_logic():

"""

该脚本用于在测试环境中验证控制逻辑的正确性。

"""

#模拟输入数据

input_data={

'temperature':100,#温度传感器读数

'pressure':20,#压力传感器读数

'flow_rate':50#流量传感器读数

}

#调用控制逻辑函数

control_output=run_control_logic(input_data)

#验证输出

expected_output={

'valve_position':75,#预期的阀门位置

'pump_status':'on'#预期的泵状态

}

assertcontrol_output==expected_output,"控制逻辑输出与预期不符"

#控制逻辑函数

defrun_control_logic(data):

"""

根据输入数据运行控制逻辑,返回控制输出。

"""

#简化的控制逻辑

ifdata['temperature']>95:

valve_position=75

else:

valve_position=25

ifdata['pressure']<25:

pump_status='on'

else:

pump_status='off'

return{'valve_position':valve_position,'pump_status':pump_status}在这个示例中,我们首先定义了一个test_control_logic函数,用于在测试环境中验证控制逻辑。我们模拟了输入数据,包括温度、压力和流量传感器的读数。然后,我们调用了run_control_logic函数,该函数根据输入数据运行控制逻辑,并返回控制输出。最后,我们使用assert语句验证控制逻辑的输出是否与预期相符。以上内容详细介绍了在进行HitachiDCS系统升级前的准备阶段,包括评估当前系统状态、制定升级计划、备份数据与配置,以及测试环境的搭建。每个步骤都至关重要,确保了升级过程的顺利进行和升级后系统的稳定运行。2DCS系统升级步骤2.1软件与硬件的更新2.1.1原理在升级HitachiDCS系统时,软件与硬件的更新是首要步骤。软件更新包括操作系统、DCS软件版本、数据库管理软件等的升级,以确保系统功能的最新性和安全性。硬件更新可能涉及更换老旧的服务器、控制器、网络设备等,以提升系统的处理能力和稳定性。2.1.2内容软件更新:操作系统升级:例如,从WindowsServer2012升级到WindowsServer2019,需要确保所有应用程序的兼容性。DCS软件版本升级:更新至最新版本,如从HitachiDCSv10升级到v12,需检查新版本的特性与旧系统配置的兼容性。数据库管理软件升级:如从SQLServer2014升级到2019,需迁移数据并测试数据完整性。硬件更新:服务器升级:更换更高性能的服务器,如从DellPowerEdgeR730升级到R740。控制器更新:采用更先进的控制器,如从HitachiDCS控制器TypeA升级到TypeB。网络设备升级:更换更快的交换机和路由器,如从CiscoCatalyst2960升级到3850系列。2.2系统配置的调整2.2.1原理系统配置的调整是为了适应新软件和硬件的特性,确保系统升级后能够正常运行。这包括网络配置、系统参数设置、安全策略更新等。2.2.2内容网络配置调整:更新IP地址和子网掩码,确保网络连通性。调整网络带宽分配,优化数据传输效率。系统参数设置:调整CPU和内存分配,以匹配新硬件的性能。优化I/O设置,提高数据读写速度。安全策略更新:更新防火墙规则,以适应新网络架构。强化用户权限管理,确保系统安全。2.3功能测试与验证2.3.1原理功能测试与验证是确保升级后的DCS系统能够满足所有业务需求的关键步骤。这包括对系统的所有功能进行测试,确保其稳定性和可靠性。2.3.2内容功能测试:控制回路测试:检查所有控制回路的响应时间和准确性。报警系统测试:确认报警阈值和报警响应机制的正确性。数据采集与处理测试:验证数据采集的完整性和数据处理的准确性。性能测试:压力测试:模拟高负载情况,测试系统的稳定性和响应时间。冗余测试:检查系统在单点故障下的恢复能力。验证:与业务流程的匹配性验证:确保系统升级后能够无缝对接现有业务流程。合规性验证:确认系统升级后是否符合行业标准和法规要求。2.4性能优化与调校2.4.1原理性能优化与调校是在系统升级后进行的,目的是进一步提升系统的运行效率和响应速度,确保其在实际操作中能够达到最佳状态。2.4.2内容性能监控:使用系统监控工具,如HitachiDCS自带的监控软件,持续监控系统性能指标。分析性能瓶颈,如CPU使用率、内存占用、网络延迟等。调校策略:CPU和内存调校:根据监控数据调整CPU和内存的分配,以提高处理速度。网络调校:优化网络配置,减少数据传输延迟。软件调校:调整软件参数,如数据库查询优化、应用程序缓存策略等。持续优化:定期进行系统性能评估,根据评估结果进行必要的调校。实施预防性维护,避免潜在的性能问题。2.4.3示例代码:系统监控脚本#系统监控脚本示例

importpsutil

defmonitor_cpu_memory():

#获取CPU使用率

cpu_usage=psutil.cpu_percent(interval=1)

#获取内存使用情况

memory=psutil.virtual_memory()

memory_usage=memory.percent

#输出结果

print(f"CPUUsage:{cpu_usage}%")

print(f"MemoryUsage:{memory_usage}%")

#调用监控函数

monitor_cpu_memory()2.4.4示例描述上述Python脚本使用psutil库来监控系统CPU和内存的使用情况。psutil.cpu_percent(interval=1)函数用于获取CPU使用率,参数interval表示采样间隔时间,单位为秒。psutil.virtual_memory()函数用于获取虚拟内存的使用情况,其返回值是一个命名元组,包含total,available,percent,used,free等字段,其中percent字段表示内存使用率。通过调用monitor_cpu_memory()函数,可以定期监控并输出CPU和内存的使用情况,帮助进行系统性能调校。2.4.5注意事项在进行系统升级与迁移时,务必备份所有重要数据和配置,以防升级过程中出现意外。升级前应进行充分的测试,确保新系统在模拟环境中能够正常运行。升级后,应持续监控系统性能,及时调校以达到最佳状态。3数据迁移与整合3.1数据迁移策略规划数据迁移策略规划是HitachiDCS系统升级与迁移过程中的关键步骤。这一阶段需要详细分析当前系统中的数据类型、数据量、数据结构以及数据的使用频率,以制定出既高效又安全的数据迁移计划。规划应包括以下几点:数据分类:区分实时数据与历史数据,以及关键业务数据与非关键数据,为不同类型的制定不同的迁移策略。迁移工具选择:根据数据类型和结构,选择合适的迁移工具,如Hitachi的DataMigrationManager(DMM)。迁移时间窗口:确定数据迁移的最佳时间,通常选择在业务低峰期进行,以减少对业务的影响。数据验证计划:规划数据迁移后的验证流程,确保数据的完整性和准确性。备份与恢复策略:在迁移前制定详细的备份计划,确保在迁移过程中或迁移后出现问题时,能够快速恢复数据。3.1.1示例:使用HitachiDMM进行数据迁移规划#使用HitachiDMM进行数据迁移前的规划

#首先,分析当前系统中的数据分布

dmmanalyze--source-system"CurrentDCS"--data-types"realtime,historical"

#然后,选择迁移工具并设置迁移时间窗口

dmmselect-tool"DMM-1000"--time-window"23:00-05:00"

#最后,规划数据验证和备份策略

dmmplan-validation--check-integrity

dmmplan-backup--full-backup3.2实时数据与历史数据迁移实时数据与历史数据的迁移是DCS系统升级与迁移中的两个重要方面。实时数据迁移需要确保数据的连续性和实时性,而历史数据迁移则更注重数据的完整性和准确性。3.2.1实时数据迁移实时数据迁移通常采用实时复制技术,如Hitachi的RealtimeDataReplication(RDR),确保在迁移过程中,新旧系统之间的数据同步,避免数据丢失或延迟。3.2.2历史数据迁移历史数据迁移则可以利用批处理技术,如Hitachi的BatchDataMigration(BDM),在非业务时间进行大规模数据迁移,减少对业务的影响。3.2.3示例:实时数据与历史数据迁移#实时数据迁移

rdrstart--source"CurrentDCS"--destination"NewDCS"

#历史数据迁移

bdmstart--source"CurrentDCS"--destination"NewDCS"--time-window"23:00-05:00"3.3系统整合与兼容性测试系统整合是指将新旧系统中的功能和数据进行无缝对接,确保升级后的系统能够正常运行。兼容性测试则是验证新系统与现有硬件、软件环境的兼容性,以及与业务流程的匹配度。3.3.1示例:系统整合与兼容性测试#系统整合

integrationtool--source"CurrentDCS"--destination"NewDCS"--merge-data

#兼容性测试

compatibilitytest--system"NewDCS"--environment"Production"3.3.2兼容性测试流程环境准备:在测试环境中搭建与生产环境相同的硬件和软件配置。功能测试:测试新系统的所有功能,确保与旧系统功能一致或更优。性能测试:评估新系统在高负载下的性能,确保系统稳定性和响应速度。安全测试:检查新系统的安全性,包括数据加密、访问控制等。用户验收测试:邀请关键业务用户参与测试,确保新系统满足业务需求。通过以上步骤,可以确保HitachiDCS系统的升级与迁移既顺利又安全,同时保持业务的连续性和数据的完整性。4系统升级后的验证4.1功能完整性检查4.1.1目的功能完整性检查旨在确保升级后的HitachiDCS系统能够完全执行其原有的功能,没有遗漏或新增的错误。4.1.2步骤功能列表核对:参照升级前的系统功能列表,逐一验证升级后的系统是否能够实现这些功能。操作测试:执行系统中的关键操作,如数据采集、控制指令下发、报警处理等,确保操作的正确性和响应的及时性。数据一致性检查:比较升级前后存储的数据,确保数据的完整性和一致性。4.1.3示例假设升级前系统能够处理特定的温度数据采集和报警功能,升级后需要验证此功能是否依然有效。#假设的温度数据采集函数

defcollect_temperature_data(sensor_id):

"""

从指定的传感器ID收集温度数据。

"""

#模拟数据收集过程

data={"sensor_id":sensor_id,"temperature":25.5}

returndata

#假设的温度报警函数

defcheck_temperature_alarm(data):

"""

检查收集的温度数据是否超过预设的报警阈值。

"""

ifdata["temperature"]>30:

returnTrue

else:

returnFalse

#升级后验证

sensor_id=1

collected_data=collect_temperature_data(sensor_id)

alarm_triggered=check_temperature_alarm(collected_data)

#输出验证结果

ifalarm_triggered:

print("温度报警功能正常")

else:

print("温度报警功能测试未通过")4.2性能与稳定性测试4.2.1目的性能与稳定性测试是为了评估升级后的系统在高负载下的表现,以及长时间运行的稳定性。4.2.2方法压力测试:模拟高并发或大数据量的场景,观察系统响应时间和资源消耗。负载测试:逐步增加系统负载,直到达到或超过预期的最大负载,评估系统性能。稳定性测试:在正常和高负载条件下,长时间运行系统,检查是否有内存泄漏、系统崩溃等问题。4.2.3示例使用Python的time和random库来模拟一个简单的压力测试场景,测试系统在高并发请求下的响应时间。importtime

importrandom

#模拟的系统响应函数

defsystem_response(request):

"""

模拟系统处理请求并返回响应时间。

"""

#模拟处理时间

processing_time=random.uniform(0.1,1.0)

time.sleep(processing_time)

returnprocessing_time

#压力测试:模拟100个并发请求

concurrent_requests=100

response_times=[]

for_inrange(concurrent_requests):

response_time=system_response("test_request")

response_times.append(response_time)

#计算平均响应时间

average_response_time=sum(response_times)/len(response_times)

print(f"平均响应时间:{average_response_time:.2f}秒")4.3安全性和合规性评估4.3.1目的安全性和合规性评估确保升级后的系统符合行业安全标准和法规要求,防止数据泄露和未经授权的访问。4.3.2评估内容数据加密:检查数据在传输和存储过程中的加密机制是否有效。访问控制:验证用户权限和访问控制是否符合设计要求。审计日志:检查系统是否记录了所有关键操作,以便于追踪和审计。4.3.3示例使用Python的hashlib库来模拟数据加密过程,确保数据在传输过程中的安全性。importhashlib

#模拟的数据

data="SensitiveData"

#使用SHA-256进行数据加密

encrypted_data=hashlib.sha256(data.encode()).hexdigest()

#输出加密后的数据

print(f"加密后的数据:{encrypted_data}")4.3.4访问控制示例假设系统中有不同级别的用户,每个用户有特定的权限。升级后,需要验证这些权限是否正确实施。#用户权限字典

user_permissions={

"admin":["read","write","delete"],

"user":["read"],

"guest":[]

}

#模拟的用户登录和权限检查函数

defcheck_user_permission(username,action):

"""

检查用户是否有执行特定操作的权限。

"""

ifactioninuser_permissions[username]:

returnTrue

else:

returnFalse

#升级后验证

username="user"

action="write"

permission_granted=check_user_permission(username,action)

#输出验证结果

ifpermission_granted:

print("权限检查通过")

else:

print("权限检查未通过")4.3.5审计日志示例升级后,系统应记录所有关键操作,以便于审计和追踪。这里使用Python的logging库来模拟审计日志的记录。importlogging

#配置日志记录

logging.basicConfig(filename='audit.log',level=logging.INFO)

#模拟的关键操作

defperform_critical_operation(operation):

"""

执行关键操作并记录审计日志。

"""

(f"执行了关键操作:{operation}")

#升级后验证

operation="修改用户权限"

perform_critical_operation(operation)通过以上步骤和示例,可以全面地验证升级后的HitachiDCS系统在功能完整性、性能稳定性以及安全合规性方面的表现,确保系统升级的成功和可靠性。5DCS系统升级与迁移的常见问题与解决方案5.1问题识别与分析5.1.1问题1:兼容性问题描述在升级或迁移DCS系统时,新旧系统之间的兼容性是一个关键问题。这包括硬件、软件、以及数据格式的兼容性。例如,旧的控制器可能不支持新的通信协议,导致数据无法正确传输。解决方案评估现有硬件:确定哪些硬件可以与新系统兼容,哪些需要替换。软件兼容性测试:在升级前,进行软件兼容性测试,确保所有应用程序在新系统上运行正常。数据迁移规划:制定详细的数据迁移计划,包括数据格式转换和数据完整性检查。5.1.2问题2:数据丢失风险描述在迁移过程中,数据丢失是一个常见的风险,尤其是当涉及到大量历史数据和配置信息时。解决方案数据备份:在迁移前,进行全面的数据备份,包括历史数据、配置文件和系统设置。增量迁移:采用增量迁移策略,分阶段迁移数据,减少一次性迁移大量数据的风险。数据验证:每个迁移阶段后,进行数据验证,确保数据的完整性和准确性。5.1.3问题3:操作中断描述DCS系统升级或迁移过程中,可能会导致生产操作中断,影响生产效率和安全。解决方案计划停机时间:选择在生产低峰期进行系统升级或迁移,减少对生产的影响。冗余系统:在可能的情况下,使用冗余系统进行切换,确保生产操作的连续性。应急计划:制定应急计划,包括快速恢复策略和备用操作流程。5.2解决方案实施5.2.1实施步骤1:项目规划描述项目规划是DCS系统升级与迁移成功的关键。它包括确定项目范围、时间表、资源分配和风险管理。实施确定项目范围:明确哪些部分需要升级或迁移。制定时间表:根据生产计划和资源可用性,制定详细的实施时间表。资源分配:分配必要的人员、设备和资金。风险管理:识别潜在风险并制定应对策略。5.2.2实施步骤2:系统测试描述在正式迁移前,系统测试是确保新系统稳定性和兼容性的必要步骤。实施单元测试:对每个组件进行单独测试,确保其功能正常。集成测试:测试系统组件之间的交互,确保数据流和控制逻辑正确。性能测试:检查系统在高负载下的表现,确保其满足性能要求。安全测试:验证系统的安全性,防止未经授权的访问和数据泄露。5.2.3实施步骤3:数据迁移描述数据迁移是将旧系统中的数据转移到新系统的过程,需要仔细规划和执行。实施数据清理:在迁移前,清理和验证数据,确保数据质量。数据转换:根据新系统的数据格式,转换旧数据。数据迁移:使用安全的方法迁移数据,如加密传输。数据验证:迁移后,验证数据的完整性和准确性。5.3案例研究与经验分享5.3.1案例1:某化工厂DCS系统升级描述一家化工厂计划将其旧的DCS系统升级到Hitachi的新系统,以提高生产效率和安全性。解决方案与结果兼容性评估:通过详细的硬件和软件评估,确定了需要替换的组件。数据迁移:采用增量迁移策略,成功迁移了所有历史数据和配置信息,无数据丢失。操作连续性:利用冗余系统,实现了无缝切换,生产操作未受影响。结果:升级后,系统运行稳定,生产效率提高了15%,安全性得到了显著提升。5.3.2案例2:某电力公司DCS系统迁移描述一家电力公司需要将其DCS系统从一个数据中心迁移到另一个,以应对业务增长。解决方案与结果项目规划:制定了详细的迁移计划,包括时间表和资源分配。系统测试:在迁移前进行了全面的系统测试,确保新系统稳定。数据迁移:使用加密传输技术,安全地迁移了所有数据。结果:迁移后,系统运行无误,业务连续性得到保障,新数据中心的容量满足了业务需求。5.3.3经验分享详尽规划:升级或迁移前的详尽规划是成功的关键。数据安全:数据安全和完整性应始终放在首位。操作连续性:尽可能减少对生产操作的影响,确保操作连续性。团队协作:跨部门的团队协作对于解决复杂问题至关重要。以上内容提供了DCS系统升级与迁移中常见问题的识别与分析,以及解决方案的实施步骤和案例研究,旨在帮助技术专业人员更好地规划和执行此类项目。6最佳实践与维护建议6.1系统维护与监控在HitachiDCS系统的维护与监控中,关键在于确保系统的稳定性和性能。以下是一些核心实践:日志监控:定期检查系统日志,识别任何异常或错误信息。例如,使用日志分析工具如Logstash和Elasticsearch来收集和分析日志数据。#示例:使用Logstash收集日志

input{

file{

path=>"/var/log/hitachi_dcs.log"

start_position=>"beginning"

sincedb_path=>"/dev/null"

}

}

filter{

grok{

match=>{"message"=>"%{COMBINEDAPACHELOG}"}

}

}

output{

elasticsearch{

hosts=>["localhost:9200"]

index=>"hitachi_dcs-%{+YYYY.MM.dd}"

}

}这段代码展示了如何配置Logstash来收集HitachiDCS的日志文件,并将其发送到Elasticsearch进行存储和分析。性能监控:使用性能监控工具如Grafana和Prometheus来监控系统的关键指标,如CPU使用率、内存使用、磁盘I/O和网络流量。#示例:Prometheus配置文件中添加HitachiDCS的监控目标

global:

scrape_interval:15s

evaluation_interval:15s

scrape_configs:

-job_name:'hitachi_dcs'

static_configs:

-targets:['00:9100']这里,我们配置Prometheus每15秒从HitachiDCS服务器(IP地址为00,端口9100)抓取数据。健康检查:定期执行健康检查脚本,确保所有组件正常运行。例如,使用Ansible来自动化这些检查。#示例:Ansibleplaybook用于检查HitachiDCS服务状态

-name:CheckHitachiDCSServiceStatus

hosts:hitachi_dcs_servers

tasks:

-name:Checkservicestatus

service:

name:hitachi_dcs

state:started

register:service_status

-name:Alertifserviceisnotrunning

debug:

msg:"HitachiDCSserviceisnotrunningon{{inventory_hostname}}"

when:service_status.statusisnotdefinedorservice_status.status.state!="running"此Ansibleplaybook用于检查HitachiDCS服务是否正在运行,如果服务未运行,则发出警报。6.2定期升级与更新定期升级HitachiDCS系统是保持其安全性和功能性的必要步骤。以下是一些关键实践:版本控制:在升级前,确保记录当前系统版本和配置,以便在出现问题时可以回滚。测试环境:在生产环境升级前,先在测试环境中进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论