我们目前在同一个VM上有Server、QA和StagingUAT实例。生产驻留在自己的服务器中。
问题是,如果一个数据库MDF或Dev上的TransactionLog突然消耗了太多的空间,它就会从所有其他Devops实例中清除硬盘驱动器空间。他们都有着相同的动力。这是一个单一的失败点。我继承了这个遗留系统。
目前,Dev、QA和StagingUAT数据库MDF具有相同的G:\驱动器。
Dev数据库: on G:\Dev
G上的QA数据库:\QA
G上的暂存数据库:\暂存
事务日志在:
Dev数据库: on H:\Dev
关于H的QA数据库:\QA
H:\Staging上的暂存数据库
防止一个事件突然占用太多空间的最佳方法是什么?
方法1:我建议每个Devops实例都有自己的驱动器。
发展数据库:关于A:\Dev
关于B的QA数据库:\QA
D:\Staging上的暂存数据库(跳过C:)
Dev数据库: on E:\Dev
F上的QA数据库:\QA
G上的暂存数据库:\暂存
让每个子文件夹有一个最大的硬盘空间,它可以消耗。G:\Dev只能占用10 GB的最大值。
G:QA只能使用10 GB的最大值。
G:\阶段只能使用10 GB的最大值。
我们有当前的规则,相同Devops实例上的数据库应该位于相同的驱动器上。目前,我们只能为这些devops实例提供1VM。
这是解决这个问题的最好办法。在创建Devops实例时,是否应该将每个实例与其他实例分离?
发布于 2018-06-12 00:15:13
从性能/不干扰的角度来看,单独的驱动器显然是可行的。即使您必须拥有与数据库相同的驱动器上的日志,您仍然会更好。当然,如果它是一个驱动器虚拟化为多个驱动器,那么你仍然有不干涉的部分至少涵盖。
另一个考虑当然是硬件。如果你的硬件开发成本太高,你会被皱眉.或者更多。我假设您有可能在这个问题上抛出更多的硬件,所以我建议您这样做。
发布于 2018-06-17 03:47:40
有句名言:“不要把所有的鸡蛋都放在一个篮子里”。
在创建Devops实例时,是否应该将每个实例与其他实例分离?
使用虚拟化(VMWare / HyperV等)并分离您的环境。
在这两种解决方案中,您只关注一个方面--磁盘。如果您的整个服务器关闭-蓝色屏幕,等等?
DEV是为您的开发人员生产的。从这里开始开发新代码。如果这不稳定,您的整个开发周期就会受到干扰。
QA是为您的测试人员生产的。他们从代码中发现了任何将被上游释放出来的bug,并最终使其得到了刺激。
阶段是一个类似于生产的环境,因此代码的评估可以在投入生产之前进行测试。理想情况下,分期是硬件、进程、设置等PROD间隔期的镜像副本。
UAT是用户测试您的代码/升级等的地方,然后才会使它在日常的基础上进行测试。所以在技术上,对于那些用户来说,UAT是他们的动力。
Devops透视图上的最佳解决方案是什么?
使用虚拟机或码头容器。(不推荐K8s,因为持久性存储仍然是K8s的一个问题。)通过这种方式,您可以分离并连接所有devops管道,从而以持续的方式有效地测试所有代码部署,最好使用Jenkins或您选择的其他工具。
https://dba.stackexchange.com/questions/209330
复制相似问题