服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

在虚拟机里面有好或坏的文件系统真的很重要?

我想了解IO如何从虚拟机发送到硬盘块。 有一个XFS或ext3或ext4等真的很重要的虚拟机内,或者它只是依赖于主机的文件系统? 与虚拟机和物理机相比,对IO的影响是什么? 以下只是基于我所知道的我的假设。 请纠正我,如果我错了: 比方说,我正在使用RAW图像! 示例1: Preallocation=full (Virtual Size = Disk Size) 如果我理解正确,将用于虚拟机的磁盘块在此模式下进行预分配,并填充零个未使用的数据。 而且,一旦在该原始磁盘上安装了来宾操作系统,所有这些物理磁盘块都将映射到虚拟磁盘块(硬编码映射?)。 而且任何在虚拟机内部发出的IO请求,客户操作系统内核都会首先处理它并向虚拟磁盘发送一个请求,并且这个请求被某种虚拟抽象服务(我猜测是libvirtd)所关注并被发送到硬盘控制器。 但是我没有得到的是如果物理磁盘块被预分配,IO请求应该包含所有的块地址或块映射,以便数据只写入其中一个磁盘块。 但是如何对硬盘控制器做出这样的IO请求,这似乎是一个主要的性能问题。 在这个例子中,我完全排除了主机的文件系统。 我无法find一个方法来关联它。 所有这些都是我的巨大假设。 我觉得我对上述想法是错误的。 但我希望有人会纠正我。 示例2: preallocation=off (Disk Size = Actual usage) 虚拟机的磁盘块不是预先分配的,只能在实际的磁盘使用情况下分配。 实例1中的相同步骤在这里适用,直到将IO请求发送到硬盘控制器,但是这里不需要请求特定的块被覆盖,因为在这里没有预分配。 所以,回到我的实际问题。 似乎虚拟机上的文件系统会产生影响,因为所有对IO的调用都是从客户操作系统内核启动的。 Huhhh困惑!!!! 🙁

Nginx反向代理到相同的Ajax应用程序,select哪一个与url

我需要一个反向代理,能够将请求转发给具有相同体系结构但不相同的上游应用程序。 我无法控制在上游服务器上运行的代码。 这是一个与挤奶机器人接口的商业产品。 在过去的16个月中,我一直使用Nginx将请求上传到一个服务器,使用如下的位置块: location /T4C { proxy_pass http://192.168.10.4/T4C/; proxy_read_timeout 90; } 它的工作正常,但不幸的是,Web应用程序是这样写的,每隔5秒将其redirect到“http:// ip /T4C/Content/StartPage.aspx”。这意味着我的位置名称必须始终为“/ T4C “如果我尝试/富,它会加载启动页面,但只要其中一个刷新触发,它会超时尝试访问/T4C/Content/StartPage.aspx我试图使用cookie: location /crews { add_header Set-Cookie targetip=192.168.10.4/; #Tried with and without the slash proxy_pass http://127.0.0.1/T4C; } location /T4C { proxy_pass http://$cookie_targetip/T4C/; }#Tried with and without the slashes, all permutaions 这导致了一个redirect循环,或500内部服务器错误的原因,我不明白(我认为500没有设置cookie时发生) 我也尝试过重写,现在我正在更多地考虑这个问题,但是我不太了解这个机制。 我也尝试阅读“起源”,但这些例子似乎是A / Btesting或负载平衡。 我想在这里清楚地表明,用户需要能够通过URL来select他们连接到的后端服务器,然后即使浏览器将不断尝试将其指向/ T4C / ***,该select仍然存在我知道理想的情况是改变webapp,但不幸的是,这超出了我的控制范围。 这些系统都编程相同,代码不是我的,我也不能改变它。 […]