说明

本文只是陈述了一种方法,不必评判谁对谁错谁好谁坏,选择适合自己的即可。

环境

站点名称 vCenter版本 vSAN集群 集群主机 主机版本 磁盘组

vcsa67.lab.com

vCenter 6.7 U3 cluster

esxi-b1.lab.com

esxi-b2.lab.com

esxi-b3.lab.com

esxi-b4.lab.com

ESXi 6.7 U3

每台主机有两个磁盘组

每个磁盘组一个闪存盘

每个磁盘组两个容量盘

vcsa.lab.com

vCenter 7.0 U3 vsan01

esxi-a1.lab.com

esxi-a2.lab.com

esxi-a3.lab.com

esxi-a4.lab.com

ESXi 7.0 U3

每台主机有两个磁盘组

每个磁盘组一个闪存盘

每个磁盘组两个容量盘

内容

本文内容涉及到以下几个部分:

  • 将vcsa67站点上ESXi主机从vSAN集群cluster中撤出,并从vCenter中移除
  • 在vcsa站点上新建集群vsan02,并将esxi-b1到esxi-b4主机加入该集群
  • 将esxi-b1到esxi-b4主机的ESXi版本升级到vcsa站点上的主机版本(ESXi 7.0 U3)
  • 在vsan02集群中启用vsan,并申明esxi-b1到esxi-b4主机的vSAN磁盘

过程

一、将vcsa67站点上ESXi主机从vSAN集群cluster中撤出,并从vCenter中移除

注意:在集群中不得存在任何虚拟机、文件或已全部迁出。

1.将主机置于维护模式。SSH登录到主机esxi-b1,不迁移数据。

esxcli system maintenanceMode set -e true -m noAction
esxcli system maintenanceMode get

2.删除主机上的vSAN磁盘组。有两种方式,一是根据磁盘组UUID,二是磁盘组名字。

esxcli vsan storage list | grep "VSAN Disk Group UUID"
esxcli vsan storage list | grep "VSAN Disk Group Name" esxcli vsan storage remove -u "VSAN Disk Group UUID"
esxcli vsan storage remove -s "VSAN Disk Group Name" esxcli vsan storage list

注:其实 "VSAN Disk Group UUID"和"VSAN Disk Group Name"就是磁盘组中闪存盘的UUID和名字,删除闪存盘就删除了整个磁盘组。

3.将主机退出vSAN群集。

esxcli vsan cluster leave
esxcli vsan cluster get

4.将主机从vCenter中移除。由于该主机的vSAN网络vmkernel适配器创建在分布式交换机vds上,所以先将vmkernel适配器从主机中删除,再将主机从vds中移除,最后再从vCenter中移除。

第一步:删除vmkernel适配器。通过powershell工具连接到vcsa67的vCenter。

Connect-VIServer vcsa67.lab.com -Username administrator@vsphere.local -Password xxxxxxxx           //环境中SSO用户名和密码

使用命令删除用于vsan流量的vmkernel适配器

Get-VMHostNetworkAdapter -VMHost esxi-b1.lab.com -PortGroup vsan | Remove-VMHostNetworkAdapter           //环境中分布式端口组名字为vsan

第二步:从分布式交换机vds中移除主机。

Remove-VDSwitchVMHost -VDSwitch vds -VMHost esxi-b1.lab.com           //环境中分布式交换机名字为vds

第三步:从vCenter中移除主机。

Get-VMHost -Name esxi-b1.lab.com | Remove-VMHost

此时esxi-b1主机已从vSAN集群及vCenter中移除。

按上述方式完成esxi-b2主机到esxi-b4主机的删除过程。本小节完。

二、在vcsa站点上新建集群vsan02,并将esxi-b1到esxi-b4主机加入该集群

1.远程SSH连接到vcsa的vCenter,并登录RVC命令行控制台。

rvc localhost       //vCenter的sso用户名和密码

2.使用RVC命令cluster.create创建集群vsan02。

cluster.create /localhost/datacenter/computers/vsan02

3.使用RVC命令cluster.add_host将esxi-b1到esxi-b4主机添加到集群vsan02中,主机默认进入维护模式。

cluster.add_host /localhost/datacenter/computers/vsan02/ esxi-b1.lab.com -u root -p xxxxxxxx       //ESXi主机的用户名和密码
cluster.add_host /localhost/datacenter/computers/vsan02/ esxi-b2.lab.com -u root -p xxxxxxxx
cluster.add_host /localhost/datacenter/computers/vsan02/ esxi-b3.lab.com -u root -p xxxxxxxx
cluster.add_host /localhost/datacenter/computers/vsan02/ esxi-b4.lab.com -u root -p xxxxxxxx

4.查看所有主机都已经加入集群vsan02成功。本小节完。

ls /localhost/datacenter/computers/vsan02/

三、将esxi-b1到esxi-b4主机的ESXi版本升级到vcsa站点上的主机版本(ESXi 7.0 U3)

ESXi主机升级的方式有多种,比如只有几台或少数主机的情况下,使用esxcli software命令一台一台的升级,如果主机较多的话推荐使用VUM基于基准的方式进行升级,当然仅在6.x及7.x版本中可用,在8.x以后的版本中仅支持vLCM基于单个映像的方式进行主机升级。本环境只有四台主机,所以就采用esxcli software命令进行升级。

VMware ESXi产品升级路径:

1.将升级包上传至esxi-b1主机的本地存储。

2.查看补丁的映像配置文件。

esxcli software sources profile list --depot=/vmfs/volumes/65a744d5-442a4976-59cb-00505687d430/VMware-ESXi-7.0U3o-22348816-depot.zip

3.安装更新ESXi7 U3O。由于环境中的硬件CPU不受支持,所以在命令中加了-f强制更新,--no-hardware-warning忽略硬件警告。(生产环境No!!!)

esxcli software profile update --profile=ESXi-7.0U3o-22348816-standard --depot=/vmfs/volumes/65a744d5-442a4976-59cb-00505687d430/VMware-ESXi-7.0U3o-22348816-depot.zip -f --no-hardware-warning

4.重启主机后,查看版本已经跟新到VMware ESXi 7.0 U3。

5.按上述方式完成esxi-b2到esxi-b4的更新操作。本小节完。

四、在vsan02集群中启用vsan,并申明esxi-b1到esxi-b4主机的vSAN磁盘

1.SSH连接到vCenter,运行RVC管理控制台。

rvc localhost

2.使用vds.create_vds命令创建一个新的分布式交换机vds2。

vds.create_vds localhost/datacenter/networks/vds2

3.使用vds.add_hosts命令将主机加入到vds2分布式交换机,并指定uplink端口为vmnic1。

vds.add_hosts --vmnic=vmnic1 /localhost/datacenter/networks/vds2/ /localhost/datacenter/computers/vsan02/hosts/esxi-b1.lab.com/
vds.add_hosts --vmnic=vmnic1 /localhost/datacenter/networks/vds2/ /localhost/datacenter/computers/vsan02/hosts/esxi-b2.lab.com/
vds.add_hosts --vmnic=vmnic1 /localhost/datacenter/networks/vds2/ /localhost/datacenter/computers/vsan02/hosts/esxi-b3.lab.com/
vds.add_hosts --vmnic=vmnic1 /localhost/datacenter/networks/vds2/ /localhost/datacenter/computers/vsan02/hosts/esxi-b4.lab.com/

4.使用vds.create_portgroup命令创建分布式端口组vsan-pg。

vds.create_portgroup /localhost/datacenter/networks/vds2/ vsan-pg

5.使用vds.create_vmknic命令在分布式端口组vsan-pg中给每台主机创建一个vmkernel端口vmk1,用于主机的vSAN流量端口。

vds.create_vmknic /localhost/datacenter/networks/vds2/portgroups/vsan-pg/ /localhost/datacenter/computers/vsan02/hosts/esxi-b1.lab.com/
vds.create_vmknic /localhost/datacenter/networks/vds2/portgroups/vsan-pg/ /localhost/datacenter/computers/vsan02/hosts/esxi-b2.lab.com/
vds.create_vmknic /localhost/datacenter/networks/vds2/portgroups/vsan-pg/ /localhost/datacenter/computers/vsan02/hosts/esxi-b3.lab.com/
vds.create_vmknic /localhost/datacenter/networks/vds2/portgroups/vsan-pg/ /localhost/datacenter/computers/vsan02/hosts/esxi-b4.lab.com/

6.为了方面,给每台主机对象分别打一个标记。

mark esxib1 /localhost/datacenter/computers/vsan02/hosts/esxi-b1.lab.com/
mark esxib2 /localhost/datacenter/computers/vsan02/hosts/esxi-b2.lab.com/
mark esxib3 /localhost/datacenter/computers/vsan02/hosts/esxi-b3.lab.com/
mark esxib4 /localhost/datacenter/computers/vsan02/hosts/esxi-b4.lab.com/

7.使用rvc esxcli命令查看主机esxib1的接口地址信息。

esxcli ~esxib1 network ip interface ipv4 get

8.使用rvc esxcli命令给所有主机的vmkernel网卡vmk1配置一个静态地址,并查看是否已配置成功。

esxcli ~esxib1 network ip interface ipv4 set -i vmk1 -t static -p 11.1.1.1 -n 255.255.255.0
esxcli ~esxib2 network ip interface ipv4 set -i vmk1 -t static -p 11.1.1.2 -n 255.255.255.0
esxcli ~esxib3 network ip interface ipv4 set -i vmk1 -t static -p 11.1.1.3 -n 255.255.255.0
esxcli ~esxib4 network ip interface ipv4 set -i vmk1 -t static -p 11.1.1.4 -n 255.255.255.0
esxcli ~esxib1 network ip interface ipv4 get
esxcli ~esxib2 network ip interface ipv4 get
esxcli ~esxib3 network ip interface ipv4 get
esxcli ~esxib4 network ip interface ipv4 get

9.使用rvc esxcli命令将所有主机的vmkernel端口vmk1配置为vSAN流量。

esxcli ~esxib1 vsan network ip add -i vmk1
esxcli ~esxib2 vsan network ip add -i vmk1
esxcli ~esxib3 vsan network ip add -i vmk1
esxcli ~esxib4 vsan network ip add -i vmk1

10.使用rvc esxcli命令查看所有主机的vSAN网络。

esxcli ~esxib1 vsan network list
esxcli ~esxib2 vsan network list
esxcli ~esxib3 vsan network list
esxcli ~esxib4 vsan network list

11.使用vsan.enable_vsan_on_cluster命令开启集群vsan02的vSAN功能,并关闭磁盘自动申明。

vsan.enable_vsan_on_cluster /localhost/datacenter/computers/vsan02/ --disable-storage-auto-claim

12.SSH登录到主机esxi-b1上,使用vdq命令查看本机的所有磁盘。准备将T1~T6磁盘用于vSAN磁盘组,T1、T3、T4为一个磁盘组,T2、T5、T6为一个磁盘组,共两个磁盘组。

vdq -q | grep "Name\|IsSSD\|Size"

13.由于主机上全是SSD磁盘,所以在创建全闪磁盘组之前,需要先将用于容量盘的磁盘标记为容量闪存盘。

esxcli vsan storage tag add -d mpx.vmhba0:C0:T3:L0 -t capacityFlash
esxcli vsan storage tag add -d mpx.vmhba0:C0:T4:L0 -t capacityFlash
esxcli vsan storage tag add -d mpx.vmhba0:C0:T5:L0 -t capacityFlash
esxcli vsan storage tag add -d mpx.vmhba0:C0:T6:L0 -t capacityFlash

14.在主机上创建两个磁盘组,T1和T2作为闪存盘,T3~T6作为容量闪存盘。

esxcli vsan storage add -s mpx.vmhba0:C0:T1:L0 -d mpx.vmhba0:C0:T3:L0 -d mpx.vmhba0:C0:T4:L0
esxcli vsan storage add -s mpx.vmhba0:C0:T2:L0 -d mpx.vmhba0:C0:T5:L0 -d mpx.vmhba0:C0:T6:L0

15.主机上查看刚刚已创建好的所有vSAN存储设备。

esxcli vsan storage list | grep -A 5 "Device"

使用上述方式,完成esxi-b2~esxi-b4主机vSAN磁盘组的创建。

16.主机上查看vSAN集群状态。

esxcli vsan cluster list

17.主机上查看vSAN集群中其他主机的单播代理状态。

esxcli vsan cluster unicastagent list

18.主机上查看vSAN集群健康状态。

esxcli vsan health cluster

19.在vCenter上使用RVC命令host.exit_maintenance_mode将所有主机退出维护模式。

host.exit_maintenance_mode ~esxib1
host.exit_maintenance_mode ~esxib2
host.exit_maintenance_mode ~esxib3
host.exit_maintenance_mode ~esxib4

20.在vCenter上使用RVC命令vsan.cluster_info查看vSAN集群vsan02的状态。本小节完。

> vsan.cluster_info localhost/datacenter/computers/vsan02
2024-01-26 11:54:11 +0800: Fetching host info from esxi-b3.lab.com (may take a moment) ...
2024-01-26 11:54:11 +0800: Fetching host info from esxi-b1.lab.com (may take a moment) ...
2024-01-26 11:54:11 +0800: Fetching host info from esxi-b2.lab.com (may take a moment) ...
2024-01-26 11:54:11 +0800: Fetching host info from esxi-b4.lab.com (may take a moment) ...
Host: esxi-b1.lab.com
Product: VMware ESXi 7.0.3 build-22348816
vSAN enabled: yes
Cluster info:
Cluster role: agent
Cluster UUID: 52783a01-cbdd-3691-ae7d-e1460dcb601e
Node UUID: 65a743cf-35f2-1ea3-5b85-00505687d430
Member UUIDs: ["65a743f9-1aad-f462-d1a8-005056875b25", "65a74405-7719-a1c0-5677-00505687cc0d", "65a743cf-35f2-1ea3-5b85-00505687d430", "65a74408-270e-ee81-2892-00505687df8b"] (4)
Node evacuated: no
Storage info:
Auto claim: no
Disk Mappings:
Cache Tier: Local VMware Disk (mpx.vmhba0:C0:T2:L0) - 10 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T6:L0) - 20 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T5:L0) - 20 GB, v15
Cache Tier: Local VMware Disk (mpx.vmhba0:C0:T1:L0) - 10 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T4:L0) - 20 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T3:L0) - 20 GB, v15
FaultDomainInfo:
Not configured
NetworkInfo:
Adapter: vmk1 (11.1.1.1)
Data efficiency enabled: no
Encryption enabled: no Host: esxi-b2.lab.com
Product: VMware ESXi 7.0.3 build-22348816
vSAN enabled: yes
Cluster info:
Cluster role: master
Cluster UUID: 52783a01-cbdd-3691-ae7d-e1460dcb601e
Node UUID: 65a743f9-1aad-f462-d1a8-005056875b25
Member UUIDs: ["65a743f9-1aad-f462-d1a8-005056875b25", "65a74405-7719-a1c0-5677-00505687cc0d", "65a743cf-35f2-1ea3-5b85-00505687d430", "65a74408-270e-ee81-2892-00505687df8b"] (4)
Node evacuated: no
Storage info:
Auto claim: no
Disk Mappings:
Cache Tier: Local VMware Disk (mpx.vmhba0:C0:T2:L0) - 10 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T6:L0) - 20 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T5:L0) - 20 GB, v15
Cache Tier: Local VMware Disk (mpx.vmhba0:C0:T1:L0) - 10 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T4:L0) - 20 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T3:L0) - 20 GB, v15
FaultDomainInfo:
Not configured
NetworkInfo:
Adapter: vmk1 (11.1.1.2)
Data efficiency enabled: no
Encryption enabled: no Host: esxi-b3.lab.com
Product: VMware ESXi 7.0.3 build-22348816
vSAN enabled: yes
Cluster info:
Cluster role: agent
Cluster UUID: 52783a01-cbdd-3691-ae7d-e1460dcb601e
Node UUID: 65a74408-270e-ee81-2892-00505687df8b
Member UUIDs: ["65a743f9-1aad-f462-d1a8-005056875b25", "65a74405-7719-a1c0-5677-00505687cc0d", "65a743cf-35f2-1ea3-5b85-00505687d430", "65a74408-270e-ee81-2892-00505687df8b"] (4)
Node evacuated: no
Storage info:
Auto claim: no
Disk Mappings:
Cache Tier: Local VMware Disk (mpx.vmhba0:C0:T2:L0) - 10 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T6:L0) - 20 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T5:L0) - 20 GB, v15
Cache Tier: Local VMware Disk (mpx.vmhba0:C0:T1:L0) - 10 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T4:L0) - 20 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T3:L0) - 20 GB, v15
FaultDomainInfo:
Not configured
NetworkInfo:
Adapter: vmk1 (11.1.1.3)
Data efficiency enabled: no
Encryption enabled: no Host: esxi-b4.lab.com
Product: VMware ESXi 7.0.3 build-22348816
vSAN enabled: yes
Cluster info:
Cluster role: backup
Cluster UUID: 52783a01-cbdd-3691-ae7d-e1460dcb601e
Node UUID: 65a74405-7719-a1c0-5677-00505687cc0d
Member UUIDs: ["65a743f9-1aad-f462-d1a8-005056875b25", "65a74405-7719-a1c0-5677-00505687cc0d", "65a743cf-35f2-1ea3-5b85-00505687d430", "65a74408-270e-ee81-2892-00505687df8b"] (4)
Node evacuated: no
Storage info:
Auto claim: no
Disk Mappings:
Cache Tier: Local VMware Disk (mpx.vmhba0:C0:T2:L0) - 10 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T6:L0) - 20 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T5:L0) - 20 GB, v15
Cache Tier: Local VMware Disk (mpx.vmhba0:C0:T1:L0) - 10 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T4:L0) - 20 GB, v15
Capacity Tier: Local VMware Disk (mpx.vmhba0:C0:T3:L0) - 20 GB, v15
FaultDomainInfo:
Not configured
NetworkInfo:
Adapter: vmk1 (11.1.1.4)
Data efficiency enabled: no
Encryption enabled: no No Fault Domains configured in this cluster
>

后续

主机升级到VMware ESXi 7.0以后,License Key将不再可用,在主机上使用vim-cmd命令配置主机的序列号。

vim-cmd vimsvc/license --set xxxxx-xxxxx-xxxxx-xxxxx-xxxxx(License Key)

新的vSAN集群也需要vSAN License Key,在vCenter上使用RVC命令vsan.apply_license_to_cluster配置vSAN集群的序列号。

vsan.apply_license_to_cluster /localhost/datacenter/computers/vsan02/ -k xxxxx-xxxxx-xxxxx-xxxxx-xxxxx(License Key)

【VMware vSAN】使用命令行从vSAN集群中移除ESXi主机并加入到新的vSAN集群。的更多相关文章

  1. Linux命令行批量替换多文件中的字符串【转】

    Linux命令行批量替换多文件中的字符串[转自百度文库] 一种是Mahuinan法,一种是Sumly法,一种是30T法分别如下: 一.Mahuinan法: 用sed命令可以批量替换多个文件中的字符串. ...

  2. Linux 桌面玩家指南:06. 优雅地使用命令行及 Bash 脚本编程语言中的美学与哲学

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  3. 将 master 节点服务器从 k8s 集群中移除并重新加入

    背景 1 台 master 加入集群后发现忘了修改主机名,而在 k8s 集群中修改节点主机名非常麻烦,不如将 master 退出集群改名并重新加入集群(前提是用的是高可用集群). 操作步骤 ssh 登 ...

  4. Cmder命令行工具在Windows系统中的配置

    一.Cmder简介 Cmder:一款用于Windows系统中,可增强传统cmd命令行工具的控制台模拟器(类似于Linux系统中的终端控制窗口) 特点: 无需安装,解压即用 可使用较多Linux命令,如 ...

  5. 使用 kubectl drain 从集群中移除节点

    对节点执行维护操作之前(例如:内核升级,硬件维护等),您可以使用 kubectl drain 安全驱逐节点上面所有的 pod.安全驱逐的方式将会允许 pod 里面的容器遵循指定的 PodDisrupt ...

  6. kubernetes集群中移除Node

    例如要在集群中移出node2节点1)在master节点上执行: kubectl drain node2 --delete-local-data --force --ignore-daemonsets ...

  7. VMware虚拟化NSX-Manager命令行更改admin用户密码

    1.1    登录到NSX-Manager命令行界面,输入用户名和密码登录到用户模式 Log in to the vSphere Client and select an NSX virtual ap ...

  8. 如何在Windows命令行(DOS界面)中调用 编译器 来编译C/C++源程序

    首先说明一下背景: 为什么要在DOS界面编译C/C++源程序?有很多现成的开发环境(IDE)如:vs, vc++等,这些开发环境集成了编译,调试,使用起来很方便,而且图形化操作界面,简洁明了.但是在开 ...

  9. MySQL 命令行工具不能向表中插入中文的解决方法

    1.报错图示 解释:sname这个字段 解析出错. 2.解决方法 打开MySQL的安装目录,找到my.ini文件,把57和81行的utf8改成gbk后 保存,最后,重启MySQL的服务 即可. 3.测 ...

  10. 使用命令行模式启动VMWare虚拟机

    工作中使用到在centos中安装vmware Workstation部署虚拟机,以前都是使用图形界面启动虚拟机,由此要调整VNC的分辨率大小,重启VNC Server后所有虚拟机都关闭了.事后分析可能 ...

随机推荐

  1. appuploader 常规使用登录方法

      转载:登录appuploader 登录appuploader   常规使用登录方法 双击appuploader.exe 启动appuploader 点击底部的未登录,弹出登录框 在登录框内输入ap ...

  2. PPT 动画-树叶摆动

    插入树叶 插入矩形,长宽放大1倍 树叶和矩形组合

  3. Jenkins Pipeline 流水线 - 上传文件 Publish over SSH + Docker 编译 + 上传到阿里仓库

    Jenkins Pipeline 流水线 Publish over SSH 将jar上传到远程 Docker 服务器.执行编译命令生成镜像.将镜像上传到阿里仓库 Publish over SSH Ja ...

  4. python 线程池 ThreadPoolExecutor

    从Python3.2开始,标准库为我们提供了concurrent.futures 模块,它提供了 ThreadPoolExecutor (线程池)和 ProcessPoolExecutor (进程池) ...

  5. 深入了解 ReadDirectoryChangesW 并应用其监控文件目录

    简介 监视指定目录的更改,并将有关更改的信息打印到控制台,该功能的实现不仅可以在内核层,在应用层同样可以.程序中使用 ReadDirectoryChangesW 函数来监视目录中的更改,并使用 FIL ...

  6. ICASSP 2022 | 前沿音视频成果分享:基于可变形卷积的压缩视频质量增强网络

    阿里云视频云视频编码与增强技术团队最新研究成果论文<基于可变形卷积的压缩视频质量增强网络>(Deformable Convolution Dense Network for Compres ...

  7. 一个非常轻量级的 Web API Demo

    一个非常轻量级的 Web API Demo,代码量很少,实现了方法拦截器,token校验,异常拦截器,缓存 创建项目:如果选择Web API,项目中东西会比较多,这里选择Empty,把下面的Web A ...

  8. Java基础知识整理,驼峰规则、流程控制、自增自减

    写在开头 本文接着上一篇文章续写哈.[Java基础知识整理,注释.关键字.运算符](https://blog.csdn.net/qq_43506040/article/details/13563332 ...

  9. JSP 学习笔记 | 一、JSP 原理理解

    前文:IDEA | 使用Maven创建Web项目并配置Tomcat JSP(全称:Java Server Pages):Java 服务端页面.是一种动态的网页技术,其中既可以定义 HTML.JS.CS ...

  10. 汇编 | DosBox初步接触的一些初始化设置(窗口大小 & 默认命令)

    如何在win10 64位下搭载汇编环境请参考这篇博客:Here 学习汇编时下载了 DosBox,然而窗口小到眼睛酸痛.解决方案如下. Updata:VSC 插件使用方法,Here 1.点开配置文件 配 ...