Обсуждение: running in a virtual environment
I'm wondering what experience people have had running pg 8.x in a virtualized environment. Are there any best practices to follow that differen when running on a real metal? Are there performance issue? What virtual environment seems most friendly to pg ? Xen, VMWare, other? What about storage; is it best to keep the cluster in a filesystem that is part of the vm-image or on a mounted file system that exists external to the image? (in other words, a /dev/sdxx that is really some NAS type of device, or NFS? CIFS?)
--
David Bear
College of Public Programs at ASU
602-494-0424
--
David Bear
College of Public Programs at ASU
602-494-0424
On Fri, 2010-08-27 at 08:21 -0700, David Bear wrote: > I'm wondering what experience people have had running pg 8.x in a > virtualized environment. Just to be a pain, there is no 8.x. There is 8.0.x, or more specifically the current version 8.4.x. The only reason I say this is we recently spent way too many bytes on the inner tubes trying to have that argument. > Are there any best practices to follow that differen when running on > a real metal? You need to spec your IO higher. You take an IO hit by virtualizing and it is significant. Considering provisioning at least 15% more IO than you would on bare metal. > Are there performance issue? Just the minor IO one I mentioned. > What virtual environment seems most friendly to pg ? Xen, VMWare, > other? For servers? KVM, VMWare, Xen are all perfectly serviceable. Depends on your actual business requirements. > What about storage; is it best to keep the cluster in a filesystem > that is part of the vm-image or on a mounted file system that exists > external to the image? (in other words, a /dev/sdxx that is really > some NAS type of device, or NFS? CIFS?) This has to do with actual business requirements. I tend to prefer DAS but a good SAN or NAS (iSCSI) configuration works well. I personally would avoid anything that is just a network mount like NFS or CIFS. Joshua D. Drake -- PostgreSQL.org Major Contributor Command Prompt, Inc: http://www.commandprompt.com/ - 509.416.6579 Consulting, Training, Support, Custom Development, Engineering http://twitter.com/cmdpromptinc | http://identi.ca/commandprompt
Good question. I hear about putting WAL/indexes/tables on separate spindles and all that, but what if all IO is virtualized?
I would guess that IO and OS page cache would be the main issues here.
i haven't dared to put my db on a virtual box though, because i don't know what happens inside of it.
--
"Patriotism is the conviction that your country is superior to all others because you were born in it." -- George Bernard Shaw
I would guess that IO and OS page cache would be the main issues here.
i haven't dared to put my db on a virtual box though, because i don't know what happens inside of it.
On Fri, Aug 27, 2010 at 5:21 PM, David Bear <David.Bear@asu.edu> wrote:
I'm wondering what experience people have had running pg 8.x in a virtualized environment. Are there any best practices to follow that differen when running on a real metal? Are there performance issue? What virtual environment seems most friendly to pg ? Xen, VMWare, other? What about storage; is it best to keep the cluster in a filesystem that is part of the vm-image or on a mounted file system that exists external to the image? (in other words, a /dev/sdxx that is really some NAS type of device, or NFS? CIFS?)
--
David Bear
College of Public Programs at ASU
602-494-0424
--
"Patriotism is the conviction that your country is superior to all others because you were born in it." -- George Bernard Shaw
I have an 8.3.7 system running on a virtual machine hosted on Windows Server 2008 Hyper-V. I mapped virtual disks to real disks, (DAS), so that I have two physical spindles and two virtual spindles mapped to them, one each. Then followed normal good practices. WAL on one spindle, tables on the other. I have a script that runs every night and backs up the enter virtual machine.
On Fri, Aug 27, 2010 at 9:07 AM, Willy-Bas Loos <willybas@gmail.com> wrote:
Good question. I hear about putting WAL/indexes/tables on separate spindles and all that, but what if all IO is virtualized?
I would guess that IO and OS page cache would be the main issues here.
i haven't dared to put my db on a virtual box though, because i don't know what happens inside of it.--On Fri, Aug 27, 2010 at 5:21 PM, David Bear <David.Bear@asu.edu> wrote:I'm wondering what experience people have had running pg 8.x in a virtualized environment. Are there any best practices to follow that differen when running on a real metal? Are there performance issue? What virtual environment seems most friendly to pg ? Xen, VMWare, other? What about storage; is it best to keep the cluster in a filesystem that is part of the vm-image or on a mounted file system that exists external to the image? (in other words, a /dev/sdxx that is really some NAS type of device, or NFS? CIFS?)
--
David Bear
College of Public Programs at ASU
602-494-0424
"Patriotism is the conviction that your country is superior to all others because you were born in it." -- George Bernard Shaw
On Fri, 2010-08-27 at 08:21 -0700, David Bear wrote: > I'm wondering what experience people have had running pg 8.x in a > virtualized environment. Just to be a pain, there is no 8.x. There is 8.0.x, or more specifically the current version 8.4.x. The only reason I say this is we recently spent way too many bytes on the inner tubes trying to have that argument. > Are there any best practices to follow that differen when running on > a real metal? You need to spec your IO higher. You take an IO hit by virtualizing and it is significant. Considering provisioning at least 15% more IO than you would on bare metal. > Are there performance issue? Just the minor IO one I mentioned. > What virtual environment seems most friendly to pg ? Xen, VMWare, > other? For servers? KVM, VMWare, Xen are all perfectly serviceable. Depends on your actual business requirements. > What about storage; is it best to keep the cluster in a filesystem > that is part of the vm-image or on a mounted file system that exists > external to the image? (in other words, a /dev/sdxx that is really > some NAS type of device, or NFS? CIFS?) This has to do with actual business requirements. I tend to prefer DAS but a good SAN or NAS (iSCSI) configuration works well. I personally would avoid anything that is just a network mount like NFS or CIFS. Joshua D. Drake -- PostgreSQL.org Major Contributor Command Prompt, Inc: http://www.commandprompt.com/ - 509.416.6579 Consulting, Training, Support, Custom Development, Engineering http://twitter.com/cmdpromptinc | http://identi.ca/commandprompt