自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 收藏
  • 关注

原创 1.ELK企业级日志分析系统

ELK日志分析系统是企业级日志管理的核心解决方案,由Elasticsearch、Logstash和Kibana三大组件构成。Elasticsearch提供分布式存储和实时检索能力,Logstash负责多源日志采集和结构化处理,Kibana则实现可视化分析和监控告警。该系统有效解决了传统日志管理中的分散存储、格式混乱、实时性差等痛点,支持TB级日志的采集、清洗、存储、分析和可视化全流程。通过灵活的集群架构、丰富的过滤插件和直观的仪表盘,ELK系统显著提升了运维效率,降低了故障排查难度,同时满足合规审计要求,已

2025-11-27 10:03:04 848

原创 8.Ceph 分布式存储 文件系统存储管理

CephFS 文件系统管理摘要 CephFS 是构建在 Ceph 存储上的 POSIX 兼容文件系统,支持多活动 MDS 以提高性能和高可用性。它提供基于文件的存储,通过 MDS 管理元数据和目录层次结构。MDS 分为活动和备用两种模式,支持配额管理和缓存限制配置。部署 CephFS 需要创建数据池和元数据池,并通过 ceph fs new 命令创建文件系统。客户端访问流程包括身份验证、获取元数据和直接与 OSD 通信。系统支持手动和卷两种部署方式,并可配置多个数据池。删除 CephFS 需先停止服务,再删

2025-11-27 09:52:37 321

原创 7.Ceph 分布式存储 对象存储管理

摘要:Ceph对象存储通过RADOS网关(RGW)提供高扩展性、高可靠性的存储服务,支持S3和Swift API。对象存储采用扁平化结构,数据以对象形式存储在桶中,包含唯一键值、元数据和内容。RGW架构支持多站点部署,通过区域、区域组和域实现数据复制和灾难恢复。部署流程包括创建存储域、区域组和区域,并通过Ceph编排器管理RGW服务。对象存储适用于云存储、大数据分析、多媒体分发等多种场景。

2025-11-27 09:51:28 377

原创 6.Ceph 分布式存储 块存储管理

本文介绍了Ceph分布式存储系统中的RADOS块设备(RBD)管理方法。主要内容包括:RBD镜像的创建与管理流程,涉及存储池初始化、专用用户创建和镜像创建;两种访问RBD存储的方式,重点讲解了使用内核RBD(KRBD)模块将RBD镜像映射为Linux块设备的详细步骤;以及如何通过rbdmap服务实现RBD镜像的持久化映射。文章还特别提醒了多客户端同时映射同一RBD镜像可能导致文件系统损坏的风险。这些操作涵盖了Ceph块存储的核心管理功能,为构建高可用分布式存储系统提供了实践指导。

2025-11-27 09:49:55 534

原创 5.Ceph分布式存储-认证和授权管理

Ceph采用cephx协议进行集群身份验证和管理,通过密钥环文件实现用户认证。用户账户分为守护进程账户(如osd.1)和客户端账户(如client.openstack)。管理员可通过命令行工具创建、查看、删除用户账户,并管理其访问权限。Cephx协议使用共享密钥加密通信,通过会话密钥和票据机制确保安全认证。密钥环文件需妥善保护,仅部署到授权系统。文章详细介绍了账户管理命令(如ceph auth ls/add/del)和密钥导出导入操作,为Ceph集群安全管理提供完整指导。

2025-11-27 09:46:47 1214

原创 4.Ceph分布式存储-池管理

本文摘要: Ceph存储池管理涉及池(Pool)和归置组(PG)两个核心概念。池是逻辑分区,具有ID、名称、PG数量、CRUSH规则等属性;PG是池的子集,数量设置需权衡性能与负载。Ceph提供复本池(多副本)和纠删码池(空间高效)两种数据保护机制。文章详细介绍了池的创建、配置管理、状态查看、配额设置、PG调整等操作命令,以及对象管理、快照和命名空间功能。重点阐述了数据映射流程和客户端访问机制,强调Ceph通过客户端直接计算存储位置实现高效访问。

2025-11-27 09:38:32 567

原创 3.Ceph分布式存储-集群配置

监控器(MON)存储集群映射,客户端需通过 MON 获取映射才能访问数据。Leader:持有最新集群映射的 MONProvider:持有最新映射但非 Leader 的 MONRequester:需同步映射后才能加入仲裁的 MON仲裁要求:超过半数 MON 需运行(如 3 个 MON 需至少 2 个运行),生产环境建议部署 3 个以上 MON 确保高可用。

2025-11-23 16:23:16 1043

原创 2.Ceph分布式存储部署

Ceph 分布式存储部署摘要 Ceph 是一款开源统一分布式存储系统,支持对象、块和文件存储服务,具有高扩展性、高可用性和高性能特点。Ceph 集群可通过 cephadm(容器化部署)或 Rook(Kubernetes 部署)等方式安装,其中 cephadm 是官方推荐方式,通过引导节点创建最小集群后,可扩展为多节点集群。Ceph 组件包括 MON、OSD、MDS 等,使用特定端口进行通信。管理接口提供 CLI 和 Dashboard GUI 两种方式,通过 cephadm shell 命令可进入容器化环境

2025-11-23 16:19:46 1048

原创 1.ceph分布式存储介绍

Ceph是一款开源统一的分布式存储系统,具备高可靠性和大规模扩展能力。其核心优势在于通过单一架构同时提供块存储、文件存储和对象存储服务。Ceph采用无中心架构,支持横向扩展,数据自动均衡分布,理论上可支持PB级存储规模。通过副本机制或纠删码技术保障数据可靠性,并利用CRUSH算法实现高效数据分布和故障恢复。Ceph广泛应用于云计算、虚拟化、大数据分析等场景,与OpenStack、Kubernetes等平台深度集成。作为软件定义存储方案,Ceph可部署在通用服务器上,支持x86和ARM混合架构,降低了企业存储

2025-11-23 16:18:25 971

原创 3-2.SQL语言(续)

本文介绍了SQL语言中DDL语句的基本用法,重点讲解了创建表的三种方法。首先展示了CREATE TABLE的基本语法格式和字段定义方式,包括设置主键、索引等。然后通过实例演示了直接创建表的过程,包括表结构查看和数据插入。接着说明了如何通过查询现存表创建新表并复制数据,以及如何仅复制表结构而不复制数据。文中提供了详细的MySQL命令示例,如创建student表、查看表结构、插入数据等操作,帮助读者理解DDL语句的实际应用。这些方法为数据库表的管理提供了灵活的选择。

2025-11-23 16:07:54 877

原创 3-2.SQL语言(续)

SQL语言之DDL语句摘要 本文重点介绍了MySQL中DDL(数据定义语言)语句的使用方法,特别是创建表的三种方式: 直接创建表:通过CREATE TABLE语法定义表结构,可指定字段类型、约束条件、主键、索引等属性,并设置表选项如存储引擎、字符集等。 通过查询现存表创建:使用CREATE TABLE...SELECT语句,新表会继承查询结果的结构并直接插入查询到的数据。 复制表结构创建:使用CREATE TABLE...LIKE语句,只复制源表的结构而不复制数据。 文章通过具体示例演示了每种创建方式的语法

2025-11-23 16:03:15 1783

原创 3-1.SQL语言

SQL语言是关系型数据库的标准查询语言,由IBM在20世纪70年代基于关系模型开发。它包含数据库、表、索引等核心组件,并支持视图、存储过程等高级功能。SQL语句不区分大小写但需遵循特定语法规范,包括使用分号结尾、关键字不可简写等。注释支持单行(--)和多行(/* */)形式。数据库对象命名需以字母开头,避免使用保留字。SQL语句分为DDL(定义)、DML(操作)、DQL(查询)、DCL(控制)和TCL(事务)五大类,广泛应用于主流数据库系统,但不同厂商实现存在差异。

2025-11-23 15:59:12 712

原创 2.mysql安装和基本使用

MySQL是由Michael Widenius于1995年开发的开源关系型数据库,最初为UNIREG项目提供SQL接口。2000年采用GPL许可模式后迅速发展,2008年被Sun以10亿美元收购,2009年随Sun并入Oracle。其分支包括Percona Server、MariaDB等,广泛应用于全球90%的顶级网站(如Facebook、Google)。MySQL以高性能、高可靠性著称,5.0版本后支持存储过程、触发器等高级功能,5.5版起InnoDB成为默认引擎。国内淘宝、百度等大型互联网公司均采用My

2025-11-23 15:57:38 573

原创 1.数据库原理

文章摘要:本文系统介绍了数据库原理,包括数据的三种分类(结构化、半结构化、非结构化数据)、数据管理发展历史(人工管理、文件系统、数据库系统三阶段演变)、数据库管理系统(DBMS)的概念与功能特点。重点阐述了关系型数据库理论,详细说明了E-R模型(实体-联系模型)的构成要素(实体、属性、联系)及其图形表示方法。最后列举了常见的关系型数据库系统(MySQL、Oracle等)及其全球排名情况。全文层次清晰,涵盖了数据库基础理论的核心内容。

2025-11-23 15:56:17 850

原创 7.python运维

Python在运维领域具有广泛应用,主要包括自动化任务、监控告警、日志处理、云容器和网络运维等场景。常用工具库包括paramiko用于远程操作、psutil获取系统指标、APScheduler管理定时任务等。典型代码示例展示了内存监控、远程命令执行和日志备份的实现。系统信息模块psutil可采集CPU、内存、磁盘等关键指标,通过简单API即可获取详细的性能数据,为运维监控提供强大支持。Python丰富的生态使其成为高效运维自动化的首选语言。

2025-11-09 14:23:03 1057

原创 3.补充:python基础:流程控制、字符串、组合数据类型

本文介绍了Python中的流程控制语句,主要包括条件语句、循环语句和跳转语句三类。条件语句部分详细讲解了if、if-else、if-elif-else语句的使用方法和嵌套应用,并通过成绩评定等实例说明。循环语句部分涵盖while和for循环的结构特点、执行逻辑及其嵌套形式,展示了如何使用循环实现重复操作和遍历处理。最后介绍了break和continue跳转语句的功能差异。文章结合多个实用案例(如计算器、猜数字游戏、逢7拍手游戏等)帮助理解编程逻辑,为Python基础学习者提供了全面的流程控制知识体系。

2025-11-09 14:19:03 615

原创 6.Python基础:异常

Python异常处理机制能够优雅地应对程序运行时的错误。异常分为不同类型(如ZeroDivisionError、FileNotFoundError等),继承自BaseException类。通过try-except语句可捕获和处理异常,其中try块监控可能出错的代码,except块处理特定异常。扩展语法包括else(无异常时执行)和finally(必须执行的清理代码)。此外,使用raise和assert可主动抛出异常。合理的异常处理能增强程序稳定性,避免意外崩溃,同时提供清晰的错误信息定位问题。

2025-11-09 13:56:11 1241

原创 5.Python基础:面向对象

本文介绍了Python面向对象编程的基础概念与实现方式。面向对象通过将事物抽象为对象,封装属性和方法来组织代码,相比面向过程具有更好的灵活性和扩展性。主要内容包括:1)面向过程与面向对象的本质区别;2)类与对象的关系,类的定义语法和对象使用方法;3)类成员(类属性和实例属性)和实例方法、类方法、静态方法的区别与使用场景。通过汽车类示例演示了如何定义类、创建对象及访问各类成员,为后续深入学习面向对象编程奠定了基础。

2025-11-09 13:54:11 1218

原创 4.python基础:文件与数据格式化

本文介绍了Python文件操作与数据格式化的基础知识。主要内容包括:1) 文件概述,解释文件标识、类型及标准文件;2) 文件基础操作,详细说明文件的打开、关闭方法,推荐使用with语句自动关闭文件;3) 文件读写方法,涵盖read()、readline()、write()等核心函数的使用及注意事项;4) 文件定位技术,讲解tell()和seek()方法实现随机读写。文章还特别强调了不同文件编码方式的区别及处理技巧,为Python数据持久化存储提供了实用指南。

2025-11-09 13:41:34 898

原创 3.Python基础:函数

本文介绍了Python函数的基础知识,主要内容包括:1. 函数的优势(模块化、代码复用、便于维护);2. 函数的定义与调用方法,包括嵌套调用和嵌套定义;3. 参数传递的多种方式(位置参数、关键字参数、默认参数及打包解包);4. 函数返回值的处理;5. 变量作用域的LEGB原则及global/nonlocal关键字的使用。通过具体示例展示了如何定义和使用函数,以及处理参数传递和变量作用域等问题,为Python开发者提供了基础函数编程的指导。

2025-11-09 13:39:36 667

原创 2.python基础-代码格式、变量类型与运算符

Python基础教程:代码格式、变量类型与运算符 本文介绍了Python编程的基本规范与语法要点,包括: 代码格式:强调Python严格的缩进规则(4空格缩进)、注释方式(#单行/三引号多行)以及语句换行技巧(隐式/显式换行) 标识符规则:详细说明命名规范(字母数字下划线组合、区分大小写)和35个关键字的用途,提供类名、函数名等命名建议 运维优势:突出Python在运维自动化中的核心价值,包括批量操作、监控告警、日志分析等场景应用 这些基础规范是编写高质量Python代码的重要前提,特别适合运维工程师构建自

2025-11-09 13:28:36 1060

原创 1.python基础:基本概述

Python作为运维工程师的核心工具,具有语法简洁、跨平台兼容等优势,适用于自动化部署、日志分析等场景。文章介绍了Python的基本特点、环境部署(Windows下安装Python和PyCharm)、开发工具以及模块管理。重点讲解了模块的实现原理(.py文件加载机制)、pip工具的使用(安装、镜像源配置)以及多种模块导入方式,同时区分了模块、包和库的概念。这些基础知识为后续自动化运维开发奠定了技术基础。

2025-11-09 13:22:19 838

原创 07.OpenStack编排管理

OpenStack Heat编排服务通过模板化方式实现资源自动化部署,可显著提升运维效率。核心要点包括:1)Heat作为官方编排工具,通过YAML模板定义资源;2)模板包含版本声明、参数定义、资源配置和输出信息四部分;3)支持参数化设计,可动态传入配置值;4)通过资源依赖关系确保创建顺序;5)配合CLI工具实现一键部署。示例展示了创建虚拟机及安全组的完整模板结构和语法,重点解释了参数引用、资源关联等关键语法,为OpenStack自动化运维提供实用解决方案。

2025-10-28 19:00:38 1186

原创 06.OpenStack网络管理

OpenStack网络管理是平台运维的关键,核心组件Neutron负责管理网络资源。基础概念包括:网络(虚拟交换机)、子网(IP地址段)和端口(虚拟网卡接口)。路由器实现不同网络间的通信,而浮动IP则让内部虚拟机可被外部访问。文章介绍了三种典型网络场景配置:仅内部通信的私有网络、可访问外网的网络,以及多租户隔离网络。同时提供了常见问题的解决方法,如虚拟机无IP、网络不通等。通过Horizon界面和命令行两种方式,帮助运维人员快速掌握OpenStack网络配置技巧。

2025-10-28 18:57:40 648

原创 05.OpenStack镜像管理

OpenStack的Glance服务是云计算平台的核心镜像管理系统,负责存储和管理虚拟机镜像。作为OpenStack的"基因模板库",它支持多种镜像格式和存储后端,提供完整的镜像生命周期管理功能。Glance采用模块化架构,包含API服务、存储后端和任务引擎等组件,支持从上传、分发到删除的全流程操作。最佳实践包括合理选择镜像格式、设置元数据、实施安全策略等。随着OpenStack发展,Glance不断简化部署并增强功能,如改进缓存机制和增加镜像签名验证,为云平台提供可靠的基础镜像服务。

2025-10-28 18:55:08 815

原创 04.OpenStack认证管理

OpenStack认证管理-Keystone是云平台的核心身份认证与授权服务。它通过统一的接口为所有OpenStack组件提供身份验证、授权、服务目录和令牌管理功能。Keystone的核心概念包括用户、项目、角色、策略、服务、端点和令牌,这些构成了身份与权限管理的基础模型。认证流程包括用户发起请求、Keystone验证身份并生成Token、用户调用服务、服务验证Token等步骤。部署时建议采用Fernet令牌、缩短有效期、启用HTTPS并遵循最小权限原则。作为OpenStack的基础支撑服务,Keyston

2025-10-28 18:52:56 412

原创 03.OpenStack界面管理

OpenStack界面管理是用户与云平台交互的重要窗口,其核心组件Dashboard(Horizon)通过WSGI协议与Web服务器集成,将复杂的命令行操作转化为直观的图形界面。作为"驾驶舱",Dashboard与各核心服务组件协同工作:与Keystone进行身份认证,与Nova管理虚拟机生命周期,与Cinder处理块存储,与Neutron配置网络资源。关键概念包括User(用户实体)、Project(资源分组隔离)、Token(访问凭证)及Service(功能组件)与Endpoint(

2025-10-28 18:50:42 2011

原创 02.OpenStack架构介绍

本专栏聚焦OpenStack开源云操作系统,深度解析其模块化架构与核心组件。从计算、网络、存储等核心服务,到部署架构、通信机制及扩展方案,全方位拆解技术原理,助你掌握私有云、公有云搭建与管理关键,洞察开源云基础设施的核心框架与实践逻辑。

2025-10-28 18:48:40 772

原创 01.OpenStack架构介绍

OpenStack 是开源云操作系统,为各类云环境提供 IT 资源池化管理与自动化调度解决方案。其采用模块化架构,核心含计算、网络、存储、身份认证等七大服务组件,通过标准化 API 与消息队列实现组件通信,支持灵活部署与水平扩展,凭借开源开放特性,助力组织构建定制化高可用云基础设施。

2025-10-22 13:34:48 813

原创 0.基于Centos-Stream8 搭建Openstack环境

本文将指导如何在CentOS Stream 8上使用Packstack工具快速部署OpenStack Victoria版本。首先介绍了环境准备要求,包括硬件配置、系统更新、网络设置等。然后详细说明了Packstack工具的安装过程,包括启用必要软件仓库和安装步骤。文章提供了两种部署方式:单节点全栈部署和自定义部署,并解释了部署后的配置操作,如获取管理员凭证、访问Horizon仪表盘等。最后总结了常见问题处理方法和后续操作建议,强调该方法适合测试环境搭建和学习使用,生产环境需进一步优化配置。

2025-10-22 13:22:02 1105 3

原创 12.docker swarm

Docker Swarm 是 Docker 官方提供的容器编排工具,它将多个 Docker 主机组成集群,作为一个整体管理。Swarm 模式下,Manager 节点负责编排和集群管理,Worker 节点执行任务。创建集群只需在 Manager 节点执行 docker swarm init,Worker 节点通过 docker swarm join 加入。通过 docker service create 可部署服务,Swarm 会自动维护服务的期望状态,如副本数量。相比 Kubernetes,Swarm 配置

2025-10-17 09:35:10 1198

原创 11.Docker实战-部署 Ghost 开源内容管理系统

本文介绍了使用 Docker Compose 部署 Ghost 博客系统的完整流程。实验通过多容器方式运行 Ghost 和 MySQL 服务,包括环境准备、目录创建、Docker Compose 配置编写、服务启动与管理等步骤。重点讲解了数据持久化、服务编排、健康检查等关键配置项,并提供了备份恢复、自定义配置等实用操作指南。文章最后还说明了如何清理环境,适合作为 Docker 和 Ghost 的入门实践教程。

2025-10-17 09:24:02 695

原创 10.Docker图形界面管理

本文介绍了三款主流Docker图形化管理工具的安装与使用:Portainer(功能全面的Web管理工具)、Docker Desktop(官方桌面工具)和Lazydocker(终端图形工具)。内容包括各工具的安装步骤、核心功能操作指南,如容器管理、镜像操作、数据卷配置等。Portainer部分详细讲解了部署、容器创建、镜像拉取等实战操作;Docker Desktop重点介绍其与开发工具的集成;Lazydocker则展示终端环境下的高效管理方式。此外还简要提及了Rancher等其他工具。全文为不熟悉命令行的用户

2025-10-17 09:21:36 1197

原创 09.Docker compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。本文介绍了其核心概念(服务、项目、网络、数据卷)、适用场景(开发/测试/小型生产环境)和安装方法。详细讲解了常用命令(如 up/down/ps/logs 等)和 docker-compose.yml 配置文件语法,包括服务定义、端口映射、环境变量、数据卷、网络配置、依赖关系等关键配置项。通过 Compose 可快速搭建一致的开发环境,简化多服务应用的部署和管理。

2025-10-04 16:01:53 1251

原创 08.容器日志

本文全面介绍了容器日志管理的基础知识和实践技巧。主要内容包括: 容器日志基础概念:解释了容器日志与传统日志的区别,以及推荐的日志输出方式(标准输出/错误)。 Docker日志操作实战: 提供查看容器日志的常用命令 处理容器内文件日志的方法 日志驱动配置选项 日志持久化方案 集中式日志管理方案: 介绍ELK Stack(Elasticsearch+Logstash+Kibana)部署方法 提供轻量级替代方案Loki+Promtail+Grafana 最佳实践:建议应用程序优先使用标准输出/错误作为日志输出方式

2025-09-27 13:52:21 990

原创 07.容器监控

容器监控完全指南 本文系统介绍了容器监控的完整方案,从基础概念到企业级解决方案。主要内容包括: 容器监控基础:解释了容器监控的特殊性(生命周期短、密度高、隔离严格)和需要关注的核心指标(资源使用率、容器状态、应用性能、宿主机状态)。 Docker原生命令:详细讲解了docker ps、docker inspect、docker stats等基础监控命令,以及查看日志、进程和健康状态的方法。 进阶监控工具cAdvisor:介绍Google开发的容器监控工具,包括安装部署和API使用方法。 企业级方案Prome

2025-09-26 16:05:01 1190

原创 06.容器存储

Docker数据管理全解析摘要(150字) 本文系统讲解Docker数据管理技术,涵盖存储驱动对比(overlay2/devicemapper等)、数据卷核心操作和高级应用场景。重点解析两种数据持久化方案:绑定挂载实现主机-容器实时同步,命名卷确保数据独立于容器生命周期。提供多容器共享数据的两种模式,并演示跨主机数据共享方案。通过Nginx文件持久化和WordPress全栈项目实战,展示数据卷在生产环境的应用。最后给出数据备份恢复的标准流程,帮助开发者构建可靠的数据管理策略。

2025-09-24 22:06:12 1207

原创 05.容器网络

本文系统介绍了Docker网络的几种模式及其应用场景。none网络适用于安全需求高或需要隔离网络的环境;host网络适合对网络性能要求高的应用;bridge是Docker默认网络模式。文章详细讲解了如何自定义容器网络、实现容器间通信的三种方式(IP通信、Docker DNS Server和joined容器),以及容器与外部网络的访问机制(NAT和端口映射)。最后提供了Tomcat容器的安装示例,帮助读者理解Docker网络的实际应用。全文内容全面,涵盖了Docker网络使用中的关键知识点。

2025-09-24 22:04:05 819

原创 04.容器的使用

容器技术已成为现代软件开发和部署的核心工具。本文系统介绍了容器的使用实践,包括:1) 容器运行方式(交互式/后台运行);2) 进入容器的两种方法(attach/exec);3) 常用操作(启停、暂停、删除);4) 资源限制(内存、CPU);5) 容器导入导出;6) 底层技术(cgroup/namespace)。通过具体命令示例和操作流程图,帮助读者从基础到高级全面掌握容器技术,实现应用的高效打包和隔离运行。

2025-09-22 13:37:45 1125

原创 03.镜像

本文全面解析了Docker镜像的核心概念和应用实践。首先介绍了最小镜像的构建策略,包括选择Alpine Linux或Scratch基础镜像等方式;深入剖析了镜像的多层结构、UnionFS工作原理及镜像清单等关键技术;通过hello-world示例演示了镜像运行机制;并提供了Node.js Web应用和Go语言多阶段构建的完整实践案例。文章还强调了语义化命名等镜像管理最佳实践,帮助读者理解如何优化镜像大小、提升安全性并规范管理流程。通过理论结合实践的方式,系统性地讲解了Docker镜像的核心知识与实用技巧。

2025-09-21 12:08:02 1189

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除