在 Linux 系统中,存在一些高危端口,这些端口若被恶意利用,可能会给系统带来安全风险。

运维工程师们请记住:封掉这 50 个高危端口,让你的系统稳如泰山!

SSH端口(22)

  • 用途:SSH(Secure Shell)是一种安全的远程登录协议,用于加密远程登录会话。

  • 风险:由于SSH的广泛使用,其默认端口22经常成为黑客攻击的目标。

  • 建议:建议修改SSH服务的端口号为一个不易被猜测的端口号,或限制访问该端口的IP地址,以增强系统安全性。

Telnet端口(23)

  • 用途:Telnet是一种远程登录协议,但由于其不安全性,已被SSH取代。

  • 风险:若系统上启用了Telnet,黑客可能通过攻击该端口来访问系统。

  • 建议:禁用Telnet服务,并改用SSH进行远程登录。

FTP端口(20、21)

  • 用途:FTP(File Transfer Protocol)是一种文件传输协议,用于在本地计算机和远程服务器之间传输文件。

  • 风险:FTP协议本身存在安全风险,容易被黑客利用进行攻击。

  • 建议:禁用FTP服务,或改用更安全的SFTP(SSH File Transfer Protocol)进行文件传输。若必须使用FTP,请确保使用强密码,并限制访问权限。

25 - SMTP (Simple Mail Transfer Protocol)

  • 用途:邮件发送。

  • 风险:垃圾邮件发送者可能会利用未保护的SMTP服务器。

  • 建议:确保SMTP服务仅接受来自授权客户端的连接。

110 - POP3 (Post Office Protocol version 3)

  • 用途:邮件接收。

  • 风险:以明文方式传输,存在安全隐患。

  • 建议:使用POP3S或者IMAPS。

SMB 端口(139、445)

  • 用途:SMB(Server Message Block)是一种网络文件共享协议,用于在局域网中共享文件和打印机。

  • 风险:SMB协议存在多个已知漏洞,如“永恒之蓝”等,可被黑客利用进行远程攻击。

  • 建议:禁用不必要的SMB服务,或限制访问权限。对于必须使用的SMB服务,请确保使用最新的安全补丁和强密码。

389 端口

  • 用途:389端口主要用于LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)服务。

  • 风险:LDAP注入攻击、匿名访问和弱口令、敏感信息(如用户密码、访问控制列表等)泄露。

  • 建议:考虑使用 LDAPS(LDAP over SSL/TLS)等安全协议来加密389端口上的通信,加强访问控制及监控。

RDP端口(3389)

  • 用途:RDP(Remote Desktop Protocol)是Windows远程桌面协议,用于远程访问Windows桌面。

  • 风险:若Linux系统上运行了支持RDP的Windows虚拟机或远程桌面服务,该端口可能成为攻击目标。

  • 建议:禁用不必要的RDP服务,或限制访问权限。对于必须使用的RDP服务,请确保使用强密码,并配置防火墙规则以限制访问。

MySQL端口(3306)

  • 用途MySQL是一种流行的关系型数据库管理系统,用于存储和管理数据。

  • 风险:若MySQL服务配置不当,黑客可能通过攻击该端口来获取数据库访问权限。

  • 建议:确保MySQL服务使用强密码,并限制访问权限。同时,定期更新MySQL的安全补丁以修复已知漏洞。

1433端口

  • 用途:1433端口通常用于Microsoft SQL Server数据库服务,是SQL Server默认的TCP/IP端口。

  • 风险:易受攻击、SQL注入风险、拒绝服务攻击等风险。

  • 建议:更改默认端口,设置复杂的访问控制策略,限制数据库的访问策略,使用SSL加密并定期更新补丁。

113端口

  • 用途:主要用于Windows的验证服务。

  • 风险:可能被木马程序利用。

  • 建议:关闭该端口。

119 - NNTP (Network News Transfer Protocol)

  • 用途:新闻组阅读。

  • 风险:恶意软件传播。

  • 建议:除非必要,否则关闭此服务。

135端口

  • 用途:用于RPC(Remote Procedure Call)协议和DCOM(Distributed Component Object Model)服务。

  • 风险:存在“冲击波”病毒等安全风险。

  • 建议:关闭该端口。

137端口

  • 用途:用于NetBIOS名称服务。

  • 风险:可能被攻击者利用来获取目标计算机的信息。

  • 建议:关闭该端口。

138端口

  • 用途:用于NetBIOS数据报服务。

  • 风险:与137端口类似,存在安全风险。

  • 建议:关闭该端口。

139端口

  • 用途:用于NetBIOS会话服务,提供Windows文件和打印机共享功能。

  • 风险:常被攻击者利用进行攻击,如使用流光、SuperScan等端口扫描工具扫描该端口并尝试获取用户名和密码。

  • 建议:如果不需要提供文件和打印机共享,建议关闭该端口。

143端口

  • 用途:用于IMAP(Internet Message Access Protocol)v2电子邮件接收协议。

  • 风险:存在缓冲区溢出漏洞。

  • 建议:若不使用IMAP服务器,关闭该端口。

443端口

  • 用途:HTTPS的默认端口,用于安全的网页浏览。

  • 风险:若服务器配置不当,可能被利用进行中间人攻击等。

  • 建议:确保服务器使用最新的SSL/TLS证书,并配置正确的安全策略。

631端口(CUPS打印服务)

  • 用途:CUPS(Common UNIX Printing System)打印服务的默认端口。

  • 风险:若CUPS服务配置不当或存在安全漏洞,可能导致远程攻击者控制打印系统或窃取敏感信息。

  • 建议:确保CUPS服务使用强密码和最新的安全补丁,并配置防火墙规则以限制不必要的访问。在不必要时,可以禁用或移除CUPS服务。

27017、27018 端口

  • 用途:27017和27018端口主要与MongoDB数据库相关。

  • 风险:MongoDB在默认情况下不设置认证机制,存在未授权访问风险。容易被攻击者扫描到,配置不当风险。

  • 建议:修改默认端口并启用认证机制,限制数据库监听地址并定时更新补丁。

5000-5002端口

  • 用途:这些端口通常被用于各种应用程序和服务,如Web服务器、数据库服务等。

  • 风险:若应用程序或服务存在安全漏洞,这些端口可能成为攻击目标。

  • 建议:对于不使用的应用程序和服务,建议关闭其对应的端口。对于必须使用的应用程序和服务,请确保它们使用强密码和最新的安全补丁。

7000-7003端口

  • 用途:这些端口可能被用于各种应用程序和服务,如实时通信、远程桌面等。

  • 风险:若应用程序或服务存在安全漏洞,这些端口可能成为攻击目标。

  • 建议:对于不使用的应用程序和服务,建议关闭其对应的端口。对于必须使用的应用程序和服务,请确保它们使用强密码和最新的安全补丁,并限制访问权限。

80端口(HTTP)

  • 用途:HTTP协议的默认端口,用于网页通信。

  • 风险:若服务器配置不当或存在安全漏洞,可能被黑客利用进行Web攻击,如SQL注入、跨站脚本等。

  • 建议:确保HTTP服务使用最新的安全补丁,并配置防火墙规则以限制不必要的访问。同时,建议使用HTTPS协议替代HTTP协议,以提高通信的安全性。

8080-8083端口

  • 用途:这些端口通常被用于各种Web应用程序和服务,如代理服务器、Web服务器等。

  • 风险:若应用程序或服务存在安全漏洞,这些端口可能成为攻击目标。

  • 建议:对于不使用的应用程序和服务,建议关闭其对应的端口。对于必须使用的应用程序和服务,请确保它们使用强密码和最新的安全补丁,并限制访问权限。

9090端口

  • 用途:常用于Web应用程序的通信。

  • 风险:若应用程序存在安全漏洞,该端口可能成为攻击目标。

  • 建议:对于不使用的应用程序,建议关闭该端口。对于必须使用的应用程序,请确保它使用强密码和最新的安全补丁。

161端口

  • 用途:用于SNMP(Simple Network Management Protocol)网络管理协议。

  • 风险:可能被用于网络监控和攻击。

  • 建议:关闭或限制访问。

5432端口

  • 用途PostgreSQL数据库的默认端口。

  • 风险:若配置不当,可能被攻击者利用。

  • 建议:确保数据库使用强密码,并限制访问权限。

631端口

  • 用途:CUPS(Common UNIX Printing System)打印服务的默认端口。

  • 风险:存在安全漏洞,可能被攻击者利用进行远程攻击。

  • 建议:禁用不必要的CUPS服务,或限制访问权限。

5900-5910 - VNC (Virtual Network Computing)

  • 用途:远程桌面。

  • 风险:默认配置易受攻击。

  • 建议:更改默认端口号,使用强密码。

对于上述高危端口,建议采取以下措施来增强系统安全性:

  • 关闭不必要的服务:对于不再使用或不需要的服务,直接关闭它们以减少安全风险。

  • 修改服务配置文件:对于某些服务,可以通过修改其配置文件来更改默认端口号或禁用该服务。例如,SSH服务的配置文件通常位于/etc/ssh/sshd_config中,可以通过修改该文件来更改SSH服务的端口号。

  • 限制访问权限:通过防火墙规则或服务配置文件,限制对高危端口的访问权限,仅允许信任的IP地址或子网进行访问。

  • 使用强密码:确保所有服务都使用强密码进行保护,并定期更换密码。

  • 定期更新和打补丁:及时更新系统和服务的补丁,以修复已知的安全漏洞。

  • 监控和日志记录:启用系统监控和日志记录功能,以便及时发现和响应潜在的安全事件。

通过防火墙规则来封锁这些端口。例如,在iptables中添加规则:

代码语言:javascript

复制

sudo iptables -A INPUT -p tcp --dport <port_number> -j DROP

大家可以根据实际生产环境及时调整,并且在封禁任何端口之前,一定要确保了解其对现有服务的影响。如果确实需要运行某些服务,务必采取适当的安全措施,如更新软件版本、配置访问控制列表(ACL)、实施日志监控等。


大家好,我是民工哥!

云计算简介

概念

狭义的理解,云计算是分布式计算的集中,可以将一个复杂的计算任务分解后分配给“云”上的多台设备上。目前,在广义上讲,云计算是一种全新的概念,而不是一种全新的技术。所谓“云计算”,就是把计算资源、存储资源、网络资源等抽象为一个“云”,并且能够对外提供服务。之所以说云计算不是全新的技术,就是因为这种“云”的实现没有使用全新的技术,而是将之前的技术进行了整合,最终退出的一项互联网网络服务。

云计算分类

按照云计算提供的服务不同进行分类,云计算可以分为以下三类:

IaaS

所谓IaaS,即Infrastructure as a Service,基础设置即服务,云计算提供者向用户提供的是虚拟化的资源,比如计算资源、存储资源、网络资源等等。用户所能够使用的也是这些虚拟化的资源。阿里云、腾讯云、亚马逊云等云服务提供商的虚拟机服务即属于这种。

PaaS

所谓PaaS,即Platform as a Service,平台即服务,云计算提供者向用户提供的是一个平台,比如一个开发编译环境,PaaS主要面向的是开发者。在各大云服务提供上的基础上,有些服务提供上会在提供虚拟机的基础上,帮助我们来安装一系列的环境,在这种情况下勉强可以算是PaaS。

SaaS

所谓SaaS,即Software as a Service,软件即服务,云计算提供者向用户提供的是应用软件或者是应用服务。我们常见的百度网盘就可以算作这种。

云计算上述三种服务提供方式的区别如下图所示:

在上图中,黑色部分为云服务提供上需要部署的设备或应用,红色部分为购买云服务的企业或者个人需要部署的设备或应用。

云计算特点

云计算具有以下特点:

动态可扩展

云计算使用虚拟化技术,突破了应用底层架构与上层服务之间的联系,因此支持动态扩展集群。

按需部署

借助虚拟化技术,云计算可以按照用户需求给用户提供不同的服务,提供不同级别的运算、存储、网络等资源。

灵活性高

云计算集群通常兼容性比较好,可以支持大部分的硬件、操作系统。

可靠性高

因为云计算服务的提供依靠的是服务器集群,因此避免了服务器单点故障。一台服务器一旦出现故障,那么该服务器上的应用可以在管理控制平台的操作下转移至其他的服务器,从而不会影响服务的正常提供。

性价比高

云计算可以将运算、存储和网络等资源统一管理、统一分配、按需供给,用户只需要购买相应的服务即可,而不需要购买昂贵的大型服务器。

Openstack简介

OpenStack是由一系列具有RESTful接口的Web服务所实现的,是一系列组件服务集合。Openstack 是一个云平台管理的项目,我们可以使用Openstack来构建一个私有云架构,并提供IaaS的云服务。Openstack包含三大项:计算、网络和存储。其主要目标是简化资源的配置和管理,把计算、网络和存储资源抽象成虚拟资源池,并根据需要对外提供服务。

Openstack官网网址为:https://www.openstack.org/,其首页如下所示:

Openstack架构

如下图为OpenStack的概念架构,我们看到的是一个标准的OpenStack项目组合的架构。这是比较典型的架构,但不代表这是OpenStack的唯一架构,我们可以选取自己需要的组件项目,来搭建适合自己的云计算平台,设计的基本原则如下:

  • 按照不同的功能和通用性来划分不同项目并拆分子系统

  • 按照逻辑计划、规格子系统之间的通信

  • 通过分层设计整个系统架构

  • 不同的功能子系统间提供统一的API接口

云平台用户在经过Keystone服务认证授权后,通过Horizon或者Reset API模式创建虚拟机服务,创建过程中包括利用Nova服务创建虚拟机实例,虚拟机实例采用Glance提供镜像服务,然后使用Neutron为新建的虚拟机分配IP地址,并将其纳入虚拟网络中,之后再通过Cinder创建的卷为虚拟机挂载存储块,整个过程都在Ceilometer模块资源的监控下,Cinder产生的卷(Volume)和Glance提供的镜像(Image)可以通过Swift的对象存储机制进行保存。

逻辑架构图如下:

虽然上面这幅图看上去很复杂,但是分层去看的话,就可以较为容易的去了解它,OpenStack包括若干个服务的独立组件,像之前我们提到的核心组件以及一些可选组件都是在这幅图里面的,比如nova、keystone、Horizon等,我们先去找到这些组件,然后再去分析下一层。

每个组件里有各自的一些服务,所有服务都需要通过keystone进行身份验证,每个服务之间又可以关联若干个组件,每个服务至少有一个API进程,通过去监听API的请求,并对这些请求进行预处理,并将它们发送到相对于该服务的其他组件,服务之间可以通过公共API进行交互。

服务之间的通信使用AMQP消息代理,将服务的状态信息存储在数据库中。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack,本系列持续更新中。

OpenStack物理架构

整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。

  • 控制节点负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等

  • 计算节点负责虚拟机运行

  • 网络节点负责对外网络与内网络之间的通信

  • 存储节点负责对虚拟机的额外存储管理等等

控制节点

控制节点包括支持服务、基础服务、扩展服务以及管理网络。

  • 1)因为控制节点是管理整个OpenStack进行运作的,所有需要keystone身份认证服务以及Harizon控制面板服务这样的全局组件来对OpenStack进行管控和操作。

  • 2)为虚拟机提供一些相对应的基础资源,比如glance镜像服务为虚拟机提供磁盘镜像文件、network网络服务对网络资源进行管理,提供/一组应用编程接口(API),用户可以调用它们来定义网络以及nova计算服务管理虚拟机的整个生命周期。

  • 3)数据的存储以及通信支持,我们使用到的是Mysql与RabbitMQ,后续我们需要对数据进行管理需要使用Cinder、Swift以及trove服务,并且提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作的ceilometer计量服务,而且还需要基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性的heat服务。

  • 4)管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,所以需要网络接口和外面进行连通。

网络节点

只有一个基础服务,Neutron网络服务。负责整个openstack架构的网络通信。整个网络接口又可分为管理网络、数据网络、外部网络。管理网络负责关联其他节点的网络,让控制节点可管控其他节点的网络。数据网络负责整个架构的数据通信。外部网络负责架构与外部物理网络的连接通信。

计算节点

计算节点包括基础服务、扩展服务、网络接口。基础服务有Nova Hypervisor 和网络插件代理。扩展服务为ceilometer agent 计量代理服务。网络接口为管理网络和数据网络。

存储节点

存储节点包括cinder和swift两个基础的存储服务和网络接口。网络接口为管理网络和数据网络。

Openstack服务

OpenStack 架构由大量开源项目组成。其中包含 8个稳定可靠的核心服务,用于处理计算、网络、存储、身份和镜像;同时,还为用户提供了十多种开发成熟度各异的可选服务。OpenStack 的 8 个核心服务主要担纲系统的基础架构,其余项目则负责管理控制面板、编排、裸机部署、信息传递、容器及统筹管理等操作。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack,本系列持续更新中。

OpenStack核心组件
Compute(计算服务)Nova

Nova管理虚拟机的整个生命周期:创建、运行、挂起、调度、关闭、销毁等。这是真正的执行部件。接受 DashBoard 发來的命令并完成具体的动作。但是 Nova 不是虛拟机软件,所以还需要虚拟机软件(如 KVM、Xen、Hyper-v 等)配合。

Network(网络服务)Neutron

Neutron 管理网络资源,提供/一组应用编程接口(API),用户可以调用它们来定义网络(如 VLAN ),并把定义好的网络附加给租户。Networking 是一个插件式结构,支持当前主流的网络设备和最新网铬技术。

Object Storage(对象存储服务)Swift

Swift 是 NoSQL 数据库,类似 HBase,为虚拟机提供非结构化数据存储,它把相同的数据存储在多台计箅机上,以确保数据不会丢失。用户可通过 RESTful 和 HTTP 类型的 API 来和它通信。这是实际的存储项目,类似 Ceph,不过在 OpcnStack 具体实施时,人们更愿意采用 Ceph。

Block Storage(块存储服务) Cinder

Cinder 管理块设备,为虚拟机管理 SAN 设备源。但是它本身不是块设备源, 需要一个存储后端来提供实际的块设备源(如 iSCSI、FC等)。Cinder 相当于一个管家,当虚拟机需要块设备时,询问管家去哪里获取具体的块设备。它也是插件式的,安装在具体的 SAN 设备里。

Identity(身份认证服务) Keystone

Keystone 为其他服务提供身份验证、权限管理、令牌管理及服务名册管理。要使用云计算的所有用户事先需要在 Keystone 中建立账号和密码,并定义权限(注意:这里的“用户”不是指虚拟机里的系统账户,如 Windows 7 中的 Administrator )。另外,OpenStack 服务(如 Nova、Neutron、Swift、Cinder 等)也要在里面注册,并且登记具体的 API,Keystone 本身也要注册和登记 API。

Image Service(镜像服务)Glance

Glance 存取虚拟机磁盘镜像文件,Compute 服务在启动虚拟机时需要从这里获取镜像文件。这个组件不同于上面的 Swift 和 Cinder,这两者提供的 存储是在虚拟机里使用的。

Dashboard(控制面板服务)Horizon

Horizon 提供了一个网页界面,用户登录后可以做这些操作:管理虚拟机、配置权限、分配 IP 地址、创建租户和用户等。本质上就是通过图形化的 操作界面控制其他服务(如 Compute、Networking 等)。当然,如果你熟悉命令,也可以直接采用命令来完成相应的任务。

Telemetry(计量服务)Ceilometer

Ceilometer 结合 Aodh、CloudKitty 两个组件,完成计费任务,如结算、消耗的 资源统计、性能监控等。OpenStack 之所以能管理公共云,一是因为 Ceilometer 的存在,二是因为引人了租户的概念。

更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack,本系列持续更新中。

可选组件以及其他组件
Heat

如果要在成千上万个虚拟机里安装和配置同一个软件,该怎么办?采用 Orchestrates 是一个不错的主意,它向每个虚拟机里注人一个名叫 heat-cfntools 的客户端工具,然后就能同时操作很多虚拟机。

Sahana

使用户能够在 OpenStack 平台上(利用虚拟机)一键式创建和管理 Hadoop 集群,实现类似 AWS 的 EMR(Amazon Elastic MapReduce Service)功能。用户只需要提供简单的配置参数和模板,如版本信息(CDH 版本)、集群拓扑(几个 Slave、几个 Datanode)、节点配置信息(CPU、内存)等,Sahara 服务就能够在几分钟内根据提供的模板快速 部署 Hadoop、Spark 及 Storm 集群。Sahana 是一个大数据分析项目。

Ironic

把裸金属机器(与虚拟机相对)加人到资源池中。

Zaqar

Zaqar 为 Web 和移动开发者提供多租户云消息和通知服务,开发人员可以通过 REST API 在其云应用的不同组件中通过不同的通信模式(如 生产者/消费者或发布者/订阅者)来传递消息。

Barbican

是 OpenStack 的密钥管理组件,其他组件可以调用 Barbican 对外暴露的 REST API 来存储和访问密钥。

Manila

为虚拟机提供文件共享服务,不过需要存储后端的配合。

其中Compute Service Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源。Neutron主要管理网络连接服务。Cinder主要管理存储。这三个部分是OpenStack中最为重要的部分。

OpenStack的网络模式

  • Local模式:一般测试时使用,只需一台物理机即可

  • GRE模式:隧道模式,VLAN数量没有限制,性能有点问题

  • VLAN(虚拟局域网)模式:vlan数量上限为4096

  • VXLAN(虚拟扩展局域网)模式:vlan数量没有限制,且性能比GRE好

  • Flat模式:管理员创建租户直接到外网,不需要NAT

OpenStack 组件通信关系

  • 基于HTTP协议进行通信:通过各项目的API建立的通信关系,API都是RESTful Web API

  • 基于SQL的通信:用于各个项目内部的通信

  • 基于AMQP协议的通信:用于每个项目内部各个组件之间的通信

  • 通过Native API实现通信:Openstack各组件和第三方软硬件之间的通信

Openstack优势

模块松耦合:与其他开源软件相比,OpenStack模块分明。添加独立功能的组件非常简单。有时候,不需要通读整个OpenStack的代码,只需要了解其接口规范及API使用,就可以轻松地添加一个新的模块

组件配置较为灵活:OpenStack也需要不同的组件。但是OpenStack的组件安装异常灵活。可以全部都装在一台物理机上,也可以分散至多个物理机中,甚至可以把所有的结点都装在虚拟机中。

二次开发容易:OpenStack发布的OpenStack API是Rest-full API。其他所有组件也是采种这种统一的规范。因此,基于OpenStack做二次开发,较为简单。而其他3个开源软件则由于耦合性太强,导致添加功能较为困难。

兼容性:OpenStack兼容其他公有云,方便用户进行数据迁移。

可扩展性:模块化设计,可以通过横向扩展,增加节点、添加资源。

参考文章:https://blog.csdn.net/weixin_40228200/article/details/124716975  https://blog.csdn.net/weixin_40228200/article/details/124718026 https://blog.csdn.net/KY06_Xxy/article/details/110959473


文章目录

前言

一、PVE是什么?

二、开始安装PVE

1.下载PVE,并且准备好需要的工具

2.安装PVE

三、PVE的优化设置

1.用SSH连接PVE

2.优化设置

总结

前言

NAS是什么?


看上去是不是很高端?但其实大可不用感觉有多复杂。

在我看来,对于大多数新手来说,没有大容量和重要文件资料存储的情况下,NAS就是一台可以7*24小时专为自己服务的家庭服务器。它可以有很多功能,可以是你的家庭“科学”网关、可以是你的下载器、文件共享服务器等等。一台机器,实现多种不同系统的功能。

本人也是一个新手玩家,做这个文章一方面记录一下自己部署家庭服务器的过程,一方面也希望可以通过一个新手的角度,帮助到更多刚入坑或者想入坑的朋友。


一、PVE是什么?

部署一台属于自己的家庭服务器,并且想在上面实现不同系统的功能,那我第一个想到的就是安装虚拟机了。那在Windows平台上虚拟机平台有VMware、Virtual BOX,以及Windows自带的Hyper-V,那用这些平台可以部署吗?当然是可以的,但是要考虑到一个问题,这几个平台都是基于Windows平台下的,也就是说,你要先安装一个Windows系统,然后在这个系统里去安装虚拟机平台,再去平台内部署其他系统,那一个Windows系统本身就会占用不小的内存、CPU以及硬盘容量资源,感觉有点亏有没有?那怎么办?所以就有基于Debian系统开发的Proxmox Virtual Environment,同样是一样虚拟机平台,这里简称PVE,同样是要先安装一个底层系统,Debian对比Windows占用的资源那自然就不用说了。当然还有ESXi可以选择,但是对我个人来说,PVE的使用更加便捷和简单,当然这个要看个人喜好了。


二、开始安装PVE

1.下载PVE,并且准备好需要的工具

https://pve.proxmox.com/wiki/Downloads

下载软件不用我多说了吧

balenaEtcher用来写入PVE镜像:https://etcher.balena.io/#download-etcher

一个8G左右的U盘


2.安装PVE

插入优盘,打开balenaEtcher


选择你下载的PVE镜像,我这里用的是最新的8.2-2,然后选择你的U盘,点击开始烧录


在即将烧录完成的时候可能会跳出需要格式化U盘,请务必点击取消!!!!

烧录完成后拔出U盘,插到你需要安装PVE的那台机器上,接上鼠标、键盘、网线,连接好显示器(临时的,安装好后基本用不到了),通电,开启,进入BIOS(不同平台的主板,进入BIOS的方式不同,可以自行百度,或者尝试Esc,Del,F2,F12等按键),设置U盘启动。(下面图片是我的机器的设置,仅供参考,没有采集卡只能拍照,见谅)




设置好保存退出重启,进入U盘启动



选择第一项,进入图形化安装页面



右下角同意协议,下一步


选择需要安装的硬盘,如果只安装了一个硬盘可以直接下一步

ps:我这边用的32G的固态,Debian系统本身就不会占用很多容量,估计安装后还有个25G以上的空间


基本默认,不一样的话,就按照上面设置


设置密码,这个密码是PVE登录密码,同时也是PVE的SSH登录密码

下面的邮箱可以随意


第一个是选择网卡,如果是单网口主板可以默认,多网口就需要选择你插网卡的那个网口

名称随意,格式***.***

然后就是设置PVE的静态IP

然后点下一步后就开始安装了

等进度条跑完,点reboot重启,移除U盘


重启后,显示这个页面就表示PVE启动完成,上面的IP地址就是PVE的WEB页面地址,在同一局域网下的电脑浏览器输入https://PVEip:8006




进入后就会显示登录页面,作为一个中国人,那必须得在这切换成中文(主要是英文看不懂)

然后账号:root 密码就是安装的时候设置的


跳出无效订阅直接点X

到这一步,PVE虚拟平台就算安装完成了


三、PVE的优化设置

1.用SSH连接PVE

接下来就要优化一下PVE了,可以直接使用PVE WEB页面的终端


个人比较习惯用SSH页面,可以使用MobaXterm、FinalShell或者使用Windows自带的CMD终端

MobaXterm下载地址:https://mobaxterm.mobatek.net/download-home-edition.html

FinalShell下载地址:https://www.hostbuf.com/t/988.html

使用WindowsCMD终端:运行-输入cmd



输入ssh root@pve ip 然后回车


输入yes


输入PVE密码,注意输入的时候不会显示


2.优化设置

这里用到的是pve_source的自动化脚本

官方地址:https://bbs.x86pi.cn/thread?topicId=20

代码:


wget -q -O /root/pve_source.tar.gz 'https://bbs.x86pi.cn/file/topic/2023-11-28/file/01ac88d7d2b840cb88c15cb5e19d4305b2.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source

1

复制代码,来到cmd页面右击即可粘贴 回车




输入Y 回车


输入1 回车 然后输入Y 回车


根据你安装的版本选择 我安装的是8.2-2 所以输入2 回车


输入Y 回车

等跑码完成 然后回车继续


选择6 回车 关闭登录后的无效订阅弹窗


完成后回车继续

选择7 设置PVE硬件显示信息


也就是下面红框的位置



输入1 回车


可以按照自己的喜好选择,我这里选择q 推荐方案三:极简

输入q后 回车


等进度条跑完


按照提示,回到PVE web页面刷新 或者重新打开


更多硬件信息就出来了

好了,我们继续 cmd页面 回车返回

第9项是开启IOMMU直通功能,我这里没用到 就不做演示,有需要显卡直通之类的,可以网上搜索,相关的教程很多

这里输入12 回车 获取ipv6地址,因为后续要设置域名解析实现公网访问PVE


输入1 回车 获取,第一次获取可能不成功,可以多试几次



我这边获取到了

回车返回 然后输入0继续返回

接下来是删除local-lvm 存储空间,把空间全部合并给local


这一部非必要,属于个人习惯,可以跳过,也可以按照我的来

输入16 回车


输入Y

再次输入Y



显示这个代表删除完成,接下来就去带pve web页面继续操作


按照图上操作,删除local-lvm存储空间

然后编辑loca存储空间 选择内容 然后全部选上后 点击OK 这样这个硬盘剩下的空间就全部分配到local



总结

这一步后,pve虚拟平台就算优化完成了 后续就是安装各种系统和容器服务了

这个就在后面的文章中陆续介绍

分享就到这里,如有什么没有说到位,请见谅,可以在下方留言指正哈

————————————————


                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/weixin_46686121/article/details/142922697


原文链接  :http://www.cnblogs.com/sammyliu/p/5269831.html


本系列会介绍OpenStack 企业私有云的几个需求:

 

1. 基本概念

1.1 用户、租户与多租户

   用户、租户与多租户是一个适用于多个行业的普遍性概念。

   一个环境/系统的一个使用者即该环境/系统的一个用户。系统允许其用户通过一个登录流程(enrollment process)进入该系统,并获取访问系统及其资源的权限。用户在管理粒度上被分到若干组内,每组成为一个租户(tenant)。一个简单的层级中,一个用户只属于一个租户;但是,复杂情况下,一个租户还可以有自租户。因此,用户可以分为几类,包括管理员用户,租户管理员用户和普通租户用户等。

   多租户(multi-tenancy)是指一个建立在共同的底层资源上的环境被被多个租户共同使用。就像一个大楼一样,许多租户共享大楼的基础设施,比如电梯,但是使用墙和门来在租户之间做隔离;在一个公司内部,敏感部门还需要进一步隔离。多租户的含义包括两个方面:(1)共享带来经济性 (2)隔离保证安全性。还是以一个办公楼举例子:

1.2 云环境的单租户和多租户

1.2.1 概念

(1)单租户

  单租户(single tenancy)是指一个云环境只被一个租户的用户使用。

(2)多租户

   多租户是云所使用的一种基础性技术,它通过共享硬件或软件来实现云的规模性成本和安全性。云使用多租户技术来在多个租户和应用直接安全地共享IT资源。实际上,多租户是在云系统在安全和成本之间的一种妥协(trade-off):底层资源共享的程度越高,云系统的运行成本就越低、资源利用率就越高;然后,这常常会导致隔离性(isolation)的进一步降低以及更高的安全风险(security risk)。

(3)各种类型云的租户性质

  根据所服务的用户,云环境可以分为四大类:

#名称说明主要的租户模式
1私有云

云基础设施只被一个企业的用户使用。它可能由该企业来管理(非托管式),或者由厂家或者第三方来管理(托管式);

它有可能部署在客户数据中心内(私有云)或者第三方数据中心内(专有云)。该企业即该云系统的租户。

单租户
2公有云由云提供商拥有,服务大众(public)。多租户(共享式)
3混合云

云基础设施包括两个或者多个云(私有、社区或者公有云),各个云保持独立实体,但是它们被使用标准或者私有的技术捆绑在一起,

来实现数据和应用的可移植性。

N/A
4社区云

云基础设施被几个组织共享,支持一个有共同需求的社团(community),该社团内的企业有共同或者相似的愿景、安全性需求、

策略和规范性需求等。

多租户(共享 + 隔离)

 

1.2.2 多租户

(1)Gartner 定义的多租户级别:第1到第7级

    云服务提供商希望利用多租户带来的资源高度共享模式(架构),提高资源利用率,降低单位资源成本。但是,因为租户间隔离性下降,多租户技术会给租户带来一系列问题。

来源

其中,三种应用较广发的典型模式为:

  • 1 - sharing nothing

  • 2 - sharing hardware

  • 6 - sharing everything

(2)公有云厂商的选择:因为有技术保证,因此往往选择较高级别,保证公有云的经济性。

来源

(3)企业用户的选择

  企业在选择公共云服务或者自建私有云时,到底需要云平台提供什么样的多租户级别,这里没有唯一的答案,适合自己的才是最好的。要认真研究企业的应用系统的特征,包括应用系统的功能和它的重要程度、业务量的变化范围、安全要求等。

  • 数据安全方面,某些类型的租户(比如银行、政府单位等)对数据安全非常关注,这一类用户是很难容忍将自己的数据与其他租户放在一起的,往往选择多租户等级较低的云环境,比如私有云或者专有云,或者要求一个公有云中的物理隔离的硬件等。

  • 对于一般用户,选择共享程度高的云环境,往往会带来更好的经济性,比如公有云。

2. 资源共享带来的问题和租户隔离

2.1 安全性:旁侧攻击

  以公有云为例来说明多租户共享带来的安全问题。公有 IaaS 云,比如 AWS EC2 和 Google GCE 等,允许其客户在共享的物理基础设上创建和运行虚机。这种资源共享能够带来规模化成本效益,但是也带来了在一个服务器上一个虚机和故意或者无意的恶意虚机共存的可能。研究表明,当两个虚机共同存在于一个物理服务器上时,存在突破虚拟化逻辑隔离而获取其它虚机/用户的机密信息或者降低其性能的可能性。最著名的也许是旁侧攻击(side-channel attacks),这种攻击可以通过聪明地监控共享资源的使用来突破虚拟化边界而窃取用户数据。

2.2 安全性:性能降低

  以 SaaS 应用来说明。通过在多个客户组织(称为租户,tenant)之间共享硬件和软件资源,多租户已经取得了令人信服的降低运营成本的效果。在云计算领域中,通过划分/共用资源、减少管理和运维成本来降低运行成本。最大的成本降低效果是通过应用层面多租户(application-level multi-tenancy)来实现的,然而,这种方式会带来不同租户之间性能如何隔离(一个租户的行为不能太影响别的租户)的问题,以及如何实现不同租户不同SLA。

  在 SaaS 层面,多租户是一种应用的架构形式,它使得 SaaS 提供商可以通过搭建在共享的硬件和软件架构上的一个应用来同时地服务不同租户中的用户。这么做,可以通过更好地利用基础架构资源,以及简化维护和管理来显著降低运行费用,比如,对应用做一次升级就可以使得所有用户获得最新版本。

  SaaS 多租户可以在不同的层面实现:(1)利用虚拟化技术在基础架构层实现,比如给不同的租户创建单独的虚机,在虚机中运行应用 (2)在中间件层实现:共享操作系统和中间件,租户拥有单独的应用,比如容器 (3)在应用层实现:所有租户共享单个或者若干个应用,在应用内或者应用访问层实现租户隔离。其中,在应用层实现可以最大限度地提高效率:所有底层架构,包括存储、操作系统、中间件和应用都在不同的租户之间共享。

  然而,在应用层实现多租户,是最难实现性能隔离的。性能隔离的目标包括:(1)阻止一个租户使用应用影响到别的租户使用应用的性能 (2)确保每个租户的可能不同的 SLA。根据租户的需求,往往是价格,每个租户的 SLA 可以不同。

  举个例子,一个 SaaS 供应商提供一个在线酒店预订系统作为一个在线软件服务给他的租户,比如旅游中介。每个旅游中介的员工和客户都是该租户的一个终端用户。这种应用在季节性需求旺盛或者举行促销时,租户的请求往往达到短期的峰值。因此,对于 SaaS 供应商来说,如果确保一个需求达到峰值的租户(比如正在做促销的租户)不会影响其它租户使用该应用的性能就非常关键了。除此以外,每个租户可以要求不同的 SLA,根据他们的需要。比如,一个大型的旅游中介往往要求在峰值期间能够处理更大量的请求。

  为了说明这种租户的影响,我们使用两种方式来部署应用。第一种方式,给每个租户分配一个虚机,这种情况下,应用不是多租户的。性能隔离通过虚机实现,请求大的租户也没法获得分配给他们的虚机的资源以外的更多资源。第二种方式,在物理基础设施集群上部署一个多租户的应用集群。每个虚机中运行同样应用的一个实例,所有租户都可以访问。这个集群使用一个 FIFO 的负载均衡器来转发所有租户的请求到三个虚机上。而在应用层,没有做别的事情来做性能隔离。

  第一种方式中,实现了不同租户之间的性能隔离,但是,这种方式有可能造成某个应用示例出现空闲。但是,第二种方式中的应用层面的多租户,一个租户的峰值请求明显地将会影响别的租户。理想情况下,云管理系统会监控访问请求的增长,并会在它出现峰值时增加新的虚机到集群中来处理新增请求。但是,这种方式需要至少几分钟的时间来启动新的虚机。

2.3. IaaS 层面的租户隔离

  一个私有云往往是单租户的,因为它部署在一个企业的数据中心内,被该企业内的员工使用。一个公有云往往是多租户的,因为从成本考虑,所有的租户都共享硬件或者软件资源,租户隔离粒度相对较高。但是在某些时候,私有云或者公有云也需要较高的隔离粒度,比如一个公司内的财务部门,出于安全性考虑,需要它所使用的虚机与别的部门使用的虚机隔离开来;比如一个政企部门,在公有云上,要求它的所有虚机或者存储必须在单独的服务器上。这种情况下,可以分为两种隔离粒度:

  • 在一个云内的有限隔离粒度:虚机被物理地隔离在指定的服务器上,但是存储和网络实现逻辑隔离就够了。

  • 在多个云内的完全隔离:这就是专有云,一个用户完全使用专属物理资源来搭建它的专有云。

  隔离可以在不同的层面,使用不同的技术实现:

  • 物理层面的隔离:这是最完全的隔离,不同的租户使用不同的物理硬件,包括计算和存储服务器和网络设备等。

  • 计算在操作系统层面的隔离:虚机,一方面它提供较高的安全隔离性,另一方面,它结合其它技术比如 Linux cgroup 来实现性能保证。

  • 计算在中间件层面的隔离:比如容器,它共享操作系统等底层资源,使用 Linux namespace 等技术提供一般的隔离性。

  • 网络在逻辑层面的隔离:使用 VLAN, VxLAN,GRE 等方式来实现网络流量的逻辑隔离。

  • 存储在应用层面的隔离:比如 Ceph 和 Swift 等共享存储,提供应用层面的租户隔离性。

  存储在应用层面提供隔离的局限性:

    以 OpenStack Swift 为例,它跟其它大多数的云存储系统一样,在应用层级实现租户隔离,它的各种服务都是运行在特权级别(privileged level),使得特权用户能够访问 Swift 存储或者 Proxy节点上的所有租户和用户的数据。Swift 使用可插拔式访问控制模块来加强租户隔离,比如使用 OpenStack Keystone 或者 tempAuth。 同时,Swift 支持 container ACL,这些 ACL 数据保存在某个节点上的数据库中,然后被 swift-proxy 从数据库中获取并保存在 memcached 内,来实现高速数据访问。因此,一方面,这种实现可以使 Swift 非常轻量级,能够支持大量的租户,但是,它也带来一个潜在的问题,就是一个攻击者(attacker)能够获取属于任何租户的任何用户的数据。而且,在 Swift 组件内来阻止这种攻击非常困难,因为每个节点本身会保存不同租户的数据,包括使用 memcached 来保存敏感的访问控制数据。

3. OpenStack 多租户共享和隔离(技术层面)

3.1 OpenStack 是被设计来支持多租户的

  默认情况下,OpenStack 私有云和专有云是单租户模式的,因为其基础设施是由一个租户专享的;OpenStack 公有云或者社区云是多租户模式,因为其基础设施是由多个租户共享的。

3.2 多租户隔离

某些租户往往要求在计算、网络和存储等方面的物理或者逻辑隔离性。OpenStack 在这些方面分别有不同的技术来实现所需的隔离性。

3.2.1 计算/虚机隔离:租户的虚机被创建在指定的计算计算节点上

  有些对安全性和性能要求高的用户,往往会要求将它的虚机部署在指定的专有的服务器上。OpenStack Nova 的这个 blueprint 在2013年引入了通过 Host aggregate 技术来支持这种需求的实现。

  具体步骤包括:
(1). 增加 Nova scheduing filter

在 nova.conf 文件中,添加新的 filters:

scheduler_default_filters = AggregateMultiTenancyIsolation, ......

AggregateMultiTenancyIsolation: 该 filter 将租户待创建的虚机分配到指定的 host aggregate 上。如果一个 host 在一个 host aggregate 中,而且该 host aggregate 带有 filter_tenant_id 元数据,那么该 host 上只能创建该元数据指定的 tenant 的虚机;一个 host 可以在多个 host aggregate 中;如果一个 host 不在任何 host aggregate 中,那么所有 tenant 的虚机都可以部署在它上面。

复制代码

class AggregateMultiTenancyIsolation(filters.BaseHostFilter):    """Isolate tenants in specific aggregates."""

    def host_passes(self, host_state, filter_properties):        """If a host is in an aggregate that has the metadata key
        "filter_tenant_id" it can only create instances from that tenant(s).
        A host can be in different aggregates.

        If a host doesn't belong to an aggregate with the metadata key
        "filter_tenant_id" it can create instances from all tenants.        """        spec = filter_properties.get('request_spec', {})
        props = spec.get('instance_properties', {})
        tenant_id = props.get('project_id')

        context = filter_properties['context'].elevated()
        metadata = db.aggregate_metadata_get_by_host(context, host_state.host, key="filter_tenant_id")        if metadata != {}:            if tenant_id not in metadata["filter_tenant_id"]:
                LOG.debug(_("%(host_state)s fails tenant id on "
                    "aggregate"), locals())                return False        return True

复制代码

(2)创建一个租户,并给它创建一个 host aggregate

复制代码

#创建tenant 和 host aggregate创建一个新的 tenant,记下它的ID:
$ keystone tenant-create --name sammytenant --description="tenant for sammy"#创建一个用户
#keystone user-create --name sammy --tenant sammytenant --pass ****  --enabled true#创建一个新的 host aggregate,记住它的 ID:
$ nova aggregate-create sammyagg

复制代码

(3). 添加计算节点到该 host aggregate 中

$ nova aggregate-add-host <aggregate_name> <host_name>比如:
$ nova aggregate-add-host sammyagg hkg02kvm004ccz023

注意这里的 host_name 是 nova host-list 命令的输出,而不是 nova hypervisor-list 命令的输出。

(4)将 host aggregate 和 tenant 联系起来

host aggregate 的 filter_tenant_id 元数据使得该 host aggregate 中的计算节点只能被指定的 tenants 使用。

复制代码

#更新 host aggregate metadata,设置 host aggregate 的 filter_tenant_id 为刚才创建的 tenant 的 ID,这将使得 Nova scheduler 只会将根据提交请求的 tenant 的 ID来选择合适的 host aggregate 总的host:

root@hkg02kvm004ccz023:/etc/ceph# nova aggregate-set-metadata sammyagg filter_tenant_id=sammytenant
Metadata has been successfully updated for aggregate 2.
+----+----------+-------------------+---------------------+--------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+----------+-------------------+---------------------+--------------------------------+
| 2 | sammyagg | - | 'hkg02kvm004ccz023' | 'filter_tenant_id=sammytenant' |
+----+----------+-------------------+---------------------+--------------------------------+

复制代码

(5)租户创建虚机

该虚机会被 Nova scheduler 安排部署在特定的计算节点上。

3.2.2 Cinder 物理隔离:不同租户的卷创建在不同的后端存储上

Cinder 支持租户在指定的 backend 上创建卷 volume。步骤如下:

(1)管理员配置 multiple-storage backends

 修改 cinder.conf 文件,配置两个cinder LVM backend,分别使用不同的 LVM groups cinder-volumes 和 cinder-volumes2:

复制代码

enabled_backends=US-lvm,UK-lvm

[US-lvm]
volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver
volume_backend_name= LVM_iSCSI
volume_group=cinder-volumes
[UK-lvm]
volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver
volume_backend_name = LVM_iSCSI_2
volume_group=cinder-volumes2

复制代码

(2)管理员创建 volume type

复制代码

$ cinder type-create <volume type name>$ cinder type-key <volume type name> set volume_backend_name=<backend name>比如:
$ cinder type-create type1
$ cinder type-key type1 set volume_backend_name=LVM_iSCSI
$ cinder type-create type2
$ cinder type-key type2 set volume_backend_name=LVM_iSCSI_2

复制代码

(3) 管理员设置 volume type 的 quotas。比如:

$ cinder quota-update --volumes 100 --volume-type type1 <tenant_ID>
$ cinder quota-update --volumes 100 --volume-type type2 <tenant_ID>

(4)租户使用 volume type 创建卷,该卷会被创建在特定的 storage backend 中。 

cinder create --name test --volume-type type1 1 #该 volume 会被创建在 cinder-volumes LVM Volume Group 中
3.2.3 Neutron 的逻辑隔离

  OpenStack 私有云使用的网络设备往往包括 ToR 和核心交换机,路由器和防火墙等。这些设备价格昂贵,因此往往采取逻辑隔离的方式来保证安全性。Amazon Virtual Private Cloud (Amazon VPC) 也是类似的方式,它允许用户在Amazon AWS 云中预配置出一个采用逻辑隔离的部分,让您在自己定义的虚拟网络中启动 AWS 资源。

  这部分的内容包括以下几种:

  在别的文章中都有说明,这里不再赘述。

3.2.4 Glance + Swift 多租户逻辑性隔离

(1)默认情况:单租户模式,使用单个 Swift 用户和单个 Container 保存所有用户的镜像文件

  用户的虚机镜像文件通过 Glance 服务保存在 Swift 中。默认情况下,Glance 使用一个统一的 Swift 用户名和密码在一个 Swift 存储中保存所有用户的镜像文件,这种模式被称为单租户Swift (Single Tenant Swift),它使用一个Swift 账号保存所有用户的镜像在一个Swift 容器(container)中。这种方式的坏处是:

实现问题
使用单个 Swift Container(1)容器删除风险:如果不小心删除了该容器,那么所有的镜像文件都将丢失

(2)Swift rate-limiting: Swift 的 rate-limiting 技术使用在 container 层面,可以限制其POST/DELETE/PUT 操作的性能。如果一个 container 中镜像过多,则其可能会被限制。

 使用单个Swift 用户

(1)用户删除风险:如果不小心删除了该租户,那么所有的镜像文件都将丢失

(2)密码泄露风险:如果所使用的用户的密码被泄露了,那么所有的镜像文件都面临风险

(2)改进1:使用 单租户模式(单Swift 用户)+ 多个 Swift Containers

  Blueprint:Glance Swift Store to use Multiple Containers for Storing Images

Glance 配置参数:

swift_store_multi_tenant=False # #默认是 false,因为该支持基于单租户模式
swift_store_multiple_containers_seed = <1 到 32 之间的整数> #默认为 0,表示使用单租户模式来保存所有用户的镜像文件。当设置为 1 到 32 之间的整数时,将会使用单租户 Swift 但是多个containers 来保存镜像,而 container 名称则取决于镜像的 UUID 字符串中的指定长度的子串。比如设置其值为 3,而且 swift_store_container = ‘glance’,那么UUID 为 ‘fdae39a1-bac5-4238-aba4-69bcc726e848’ 的镜像将被保存在 ‘glance_fda’ container 中。可见,这种模式中,所有用户的镜像将会被分散地保存到多个 container 中。

(3)改进2:使用多个 Swift 用户,使能多租户模式

 Blueprint:Store image data in tenant-specific swift accounts 每个租户的镜像保存在其自己的 Swift account 中。

Glance 配置参数:

  • swift_store_multi_tenant = true #设置为 true,使能多租户模式,使得每个租户的镜像被保存在该租户对应的 swift 账号中

  • swift_store_admin_tenants = <<tenant_id>:<username> <tenant_name>:<username> *:<username>> # openstack租户:swift账号

 手头没有环境,因此没有一步一步做实验。详细配置步骤和实现细节可以参考 Configure tenant-specific image locations with Object Storage 和 https://review.openstack.org/#/q/topic:bp/swift-tenant-specific-storage,n,z

3.2.5 Ceph 的隔离性

(1)使用 pool 做逻辑隔离

在使用默认的 CRUSH rules 的情况下,一个 Pool 所使用的 OSD 可能分布在不同的存储节点上。这时候,租户 - pool - osd 其实是逻辑隔离关系。

(2)定制 CRUSH Rules 对 Pool 做物理隔离

Ceph CRUSH Rules 会对数据如何存放在 OSD 上有直接的影响。因此,定义合适的 Rules,可以使得一个 Pool 的 OSD 分布在指定的存储节点上。

 3.3 单个 OpenStack 云中

3.3.1 默认的多租户共享和逻辑隔离

3.3.2 按需配置的特定租户物理和逻辑隔离

4. OpenStack 多租户共享和隔离(运行层面)

    多租户环境中,除了IaaS 技术层面的隔离以外,还有就是在运行层面的隔离,比如分租户计费、分租户的 Dashborad、运维、以及“店中店” 模式(租户 - 子租户模式)等等。而这些目前OpenStack 中并没有完善的解决方案。

 

 

参考链接:


PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

2024-08-11 12:34:15 175点赞 564收藏 110评论

值友们好久不见,因为带娃的原因最近都没有时间瞎折腾了。PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享不过这几天老婆带娃回娘家了,我就抓紧时间赶紧又折腾了一番PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享。这次折腾的主题就是老电脑改造计划!我家正好有一台7年前的I5-7400的老电脑21年开始就闲置了,正好最近单位老电脑淘汰,就从中捡垃圾了一条8G的内存条,把这台老电脑升级到了16G内存,于是乎就想折腾一下很多人想玩all in one的入门必学虚拟机!PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

一般虚拟机我们就有两款可以选择,一个就是收费的ESXI和免费的Proxmox VE,很多新手玩家对这两个虚拟机可能不是很了解,这里我也简单给大家做一个介绍。

一、虚拟机平台介绍

ESXi和Proxmox VE (PVE) 是两款流行的虚拟化平台,它们各自拥有一定的优势和特点。两者在功能、性能以及易用性三个方面有所差别,具体对比如下:

  1. 功能

    • ESXi:VMware ESXi提供了一系列高级虚拟网络管理功能,如vMotion(虚拟机实时迁移技术)、DRS(分布式资源调度以优化资源利用)以及HA(高可用性确保服务持续运行)。此外,内置的安全功能,包括vShield和NSX,强化了企业级虚拟化环境的安全性。

    • PVE:Proxmox VE是基于Debian的开源虚拟化平台,它支持KVM和LXC容器技术。其特色功能包括基于ZFS的快照和备份,以及灵活配置的网络选项。PVE的集群功能支持虚拟机故障转移和高可用性,为关键应用提供了必要的冗余。

  2. 性能

    • ESXi:VMware ESXi的性能优势来自于其为虚拟化特制的内核,可以更高效地管理和分配资源。资源调度和动态迁移(如DRS和vMotion)进一步优化了虚拟机的性能和资源利用率。

    • PVE:KVM作为成熟的开源虚拟化技术,其性能在多数场景下表现良好。Proxmox VE让用户能够对虚拟机实施详细的资源控制和配额,确保每个应用都能获取所需的资源。

  3. 易用性

    • ESXi:VMware ESXi搭载的vSphere Client为用户提供了一个直观且易于使用的Web界面,与VMware的其他产品(例如vCenter)紧密集成,使得管理体验更为简便和高效。

    • PVE:Proxmox VE的Web界面设计直观、用户友好,易于新手学习和使用。其开源特性也意味着用户能享受到更高的自定义程度和灵活性。

  4. 稳定性

    稳定性方面个人认为家用两者没有什么区别,都完全够用。

简单小结一下:

看到这儿可能新手小白是一头雾水!我这介绍说了又好像没说!对于新手小白我觉得没人会关注什么性能损耗呀,虚拟化这些,最关心的我觉得就是安装和配置的难易程度,从我个人的安装体验上来看经验分享如下:

如果你是Intel的网卡,优先考虑ESXI,驱动兼容性更好,而且界面安装虚拟机也更简单,更容易入门上手

但如果你是Realtek的网卡,我建议直接放弃ESXI,选择PVE,这也是我这次选择PVE的最大原因,ESXI尤其是最新的8.0系统对Realtek网卡的驱动都需要自己去封装,即便是像我一样去封装后也可能出现检测不到的不兼容问题,但PVE就没这个问题,安装就直接可用,而且通过后期优化可以显示更多的概要信息,可玩性个人觉得高于ESXI,但是一些虚拟机安装需要使用shell,对小白入手难度较大。

二、PVE8.2.2系统安装

下面我们就进入今天的正题,PVE8.2.2的系统安装!

1.镜像下载:

首先我们需要先去官网下载相应的镜像文件

官网地址:https://www.proxmox.com/en/downloads

选择下图的Proxmox VE 8.2 ISO Installer,点击Download即可下载镜像文件

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

2.制作系统镜像文件的U盘引导

我们需要制作一个U盘引导,用于安装PVE的镜像到我们的电脑里。

这里我推荐使用balenaEtcher,因为这款软件界面简单而且不论是windows,macos,linux都是可以安装的。

官网地址:https://etcher.balena.io/#download-etcher

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

点击官网地址进入后点击上图标注的位置,然后在下图的下载位置,选择对应自己系统的安装包下载安装即可,因为我已经安装好了,安装过程我这里就不做展示了。

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

安装完毕后,我们插上U盘,打开刚刚安装好的balenaEtcher,选择从文件烧录,然后选择我们刚刚下载好的PVE镜像文件,如果电脑直插入一个U盘软件和自动识别,如有多个U盘可以点击更改选择要烧录镜像文件的那个U盘(U盘最好选择4G以上),都选择好点击现在烧录,等待烧录完成即可。

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

看到这个就是我们已经烧录系统到U盘成功了,下一步就按安装系统了

3.PVE8.2.2系统安装

首先将安装好镜像的U盘插入要安装系统的电脑主机,按电源键使电脑开机,然后按F2(不同型号电脑进入的按键不一样,这个可以自行百度即可)进入Bios选择U盘进入安装系统,或者直接按Delete键直接进入u盘引导。进入这个界面选择第一个按键盘的回车键enter。

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

接下来就到了一般看不懂的跑代码安装环节,需要等待系统自动安装

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

然后进入安装界面,直接点击右下角I agree(我同意)即可

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

这里是设置需要安装的系统盘,因为我就一个盘选择默认即可,如果你需要分区选择Options进行分区即可,确认无误点击右下角next即可。

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

这里设置国家选择中国,时区上海,键盘英文即可下一步

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

这里是设置PVE虚拟登录的密码和邮箱的,设置好点击下一步

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

这里根据自己的喜好配置好主机名和PVE的管理后台地址,网关和DNS信息(注意管理后台地址不要和现有地址冲突,网关和DNS都要和家里路由器信息一致,以免出现无法访问的问题),都设置好点击下一步。

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

最后确认信息无误,点击右下角install开始安装。

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

等待安装进度条跑完会自动重启,然后根据界面提示的ip地址,进入PVE后台管理页面

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

首次进入PVE系统需要先设置语言为中文,然后输入用户名和我们之前安装时候设置的密码,即可进入PVE系统了。

PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享

至此PVE系统就已经全部安装完毕!我已经在我的这台老电脑中部署了openwrt做旁路,windows11做轻办公、ubuntu以及黑群晖。PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享如果值友对哪个系统有兴趣,可以评论区留言,下一篇我再给大家分享一下单个系统在PVE虚拟机中的具体安装和配置方法,方便大家快速上手。

总结:

通过这次折腾,我成功让7年前的老主机重新焕发了第二春,让它重新从闲置中用了起来,整体感觉体验还是很不错的,而且个人感觉PVE虚拟机的安装配置也很简单,并没有网上说的那么困难,如果你也想折腾一下家里的老电脑,不妨也可以按我的方法尝试一下,没准就可以实现变废为宝!PVE虚拟机助7年前老台式机焕发第二春-PVE8.2.2安装体验分享