From Fedora Project Wiki

Line 103: Line 103:


Random thoughts and things I have been looking into. Is this going anywhere usefull?
Random thoughts and things I have been looking into. Is this going anywhere usefull?
I left out the numbering of the chapters due to our decision to merge ch2 &3.
Still reading up on a lot of things...
Still reading up on a lot of things...
(will be away from 2- 14 September 2015)
---------------------------------------------------
---------------------------------------------------
FAQ questions:
Proposal CH2 what I have now (WIP):
Q: Is virtualization is expensive?
A: Virtualization can be expensive to introduce but often it saves money in the long term. It is important to perform a Return on Investment (ROI) analysis to determine the best use of virtualization in your environment.
  Examples are given in Ch x Virtualization costs


Q: Is a Virtual machine slower than hardware?
2. General Overview of Virtualization
A: No, because there are more options available to make sure the virtual guest has enough memory available and it can use multiple CPUs.
2.1. What is Virtualization?
  Also see Ch x Performance
/* keeping it as is
/* general suggestion: go for short clear titles (like it was before)
Virtualization is a broad computing term used for running software, usually multiple operating systems, concurrently and in isolation from other programs on a single system. Most existing implementations of virtualization use a hypervisor, a software layer or subsystem that controls hardware and provides guest operating systems with access to underlying hardware. The hypervisor allows multiple operating systems, called guests, to run on the same physical system by offering virtualized hardware to the guest operating system. There are several methods for virtualizing operating systems.


Q: Is virtualization always a better option?
/*do we add an FAQ here? suggestions for questions?
A: There are a few cases in which you would NOT use a VM:
Virtualization methods
  01. Anything with a dongle/required physical hardware
  02. Systems that require extreme performance
  03. Applications/operating systems with license/support agreements that don't permit virtualization
[list from http://www.techrepublic.com/blog/10-things/10-things-you-shouldnt-virtualize/ and http://www.storagecraft.com/blog/virtualization-no-nos-five-things-you-shouldnt-virtualize/ needs some rephrasing though...]


---------------------------------------------------
Full virtualization
    Full virtualization uses the hardware features of the processor to provide guests with total abstraction of the underlying physical system. This creates a new virtual system, called a virtual machine, that allows guest operating systems to run without modifications. The guest operating system and any applications on the guest virtual machine are unaware of their virtualized environment and run normally. Hardware-assisted virtualization is the technique used for full virtualization with KVM (Kernel-based Virtual Machine) in Fedora.
Para-virtualization
    Para-virtualization employs a collection of software and data structures that are presented to the virtualized guest, requiring software modifications in the guest to use the para-virtualized environment. Para-virtualization can encompass the entire kernel, as is the case for Xen para-virtualized guests, or drivers that virtualize I/O devices.
Software virtualization (or emulation)
    Software virtualization uses slower binary translation and other emulation techniques to run unmodified operating systems.
 
Note
For more information and detailed instructions on guest installation, refer to the Fedora Virtualization Deployment and Administration Guide. /*add link when possible
 
2.2. Virtualization costs
Before you consider to virtualize your environment it is important to perform a Return on Investment (ROI) analysis to determine the best use of virtualization in your environment.
Consider the following benefits:


Ch x Virtualization costs
Smaller footprint
Before you concider to virtualize your environment it is important to perform a Return on Investment (ROI) analysis to determine the best use of virtualization in your environment. Consider the following benefits:
    Using virtualization negates much of the need for multiple physical platforms. Consolidating servers onto fewer machines means less physical space is required. This equates to less power being drawn for machine operation and cooling, resulting in reduced energy costs. This means more efficient energy resource management for your data centre.
[ continue ch as is, maybe add green footprint (usually big on the agenda of managers)]
 
[@Ki look into http://www.infoworld.com/article/2621446/server-virtualization/server-virtualization-top-10-benefits-of-server-virtualization.html => also used for Flexibility]
Less maintenance
Provided adequate planning is performed before migrating physical systems to virtualized ones, less time is spent maintaining them. This means less money being spent on various resources.  


Ch x Uses for Virtualization
Extended life for installed software
[ie desktop vs server; test environment;... ]
    Older versions of software may not run on newer, bare metal machines directly. However, by running the older software virtually on a larger, faster system, the life of the software may be extended while taking advantage of the  performance from the newer system.  
[@Ki look into https://f5.com/zh/resources/white-papers/virtualization-defined-eight-different-ways]


Ch x Performance
2.3. Performance
Modern servers are delivered with multiple CPU as a standard. This has significantly changed the posibilities with VMs.  
Modern servers are delivered with multiple CPU as a standard. This has significantly changed the possibilities with VMs.  
Depending on what you would like to use your VM for, and how many CPUs are available, you can now set up a VM with multiple CPUs.
Depending on what you would like to use your VM for, and how many CPUs are available, you can now set up a VM with multiple CPUs.
As discussed in the chapter about use cases for setting up a VM, all of these uses will have their own system requirements.
As discussed in the chapter about use cases for setting up a VM, all of these uses will have their own system requirements.


When you set up a server to support multiple VM machines, you will have to make an architechture design. This is not much different from a hard ware network design.
2.4. Flexibility
In this case you have to keep in mind what the function of your VMs will be, how many resources they will be likely to use, and balance the available resources on a server.
Several researches point out that setting up a virtual environment can increase speed by 2 to 6 %; when the configuration has been thought through carefully.
 
Ch x Flexibility
Virtualization provides greater flexibility for managing systems. Virtual machines can be copied or moved to test software updates and validate configuration changes, without impacting other systems. Because each of the virtualized systems are completely separate to each other, one system's downtime will not affect any others.
 
* Test and development flexibility is critical to effectively provide superior analytical capability. Thorough testing, unencumbered by system availability or usage restrictions, increases quality.
*  data center flexibility and the ability to recover from disruptive events
* not stuck to one os -  Reduce hardware vendor lock-in




Ch x Disaster Recovery
[short write up of what is it]
Disaster recovery is quicker and easier when the systems are virtualized. On a physical system, if something serious goes wrong, a complete re-install of the operating system is usually required, resulting in hours of recovery time. However, if the systems are virtualized this is much faster due to {migration ability. If the requirements for live migration are followed, virtual machines can be restarted on another host, and the longest possible delay would be in restoring guest data.[migration has been comented out in this Ch, repharese to cloning?] }


* disaster recovery -By removing the dependency on a particular hardware vendor or server model, a disaster recovery site no longer needs to keep identical hardware on hand to match the production environment, [needs rephrasing is a quote from somewhere]
2.5. Disaster Recovery
* ease of installing (you can use images / clones / snapshots?)
Disaster recovery has become part of the business plan. In case of IT, besides having a stable an efficient production environment, a place where this environment can be moved to is desired.
*[@Ki look into http://www.quora.com/What-are-the-main-use-cases-for-virtualization]
To make sure the business loses as little time as possible to set up this shadow environment, virtualization might prove to be the best choice.


Ch x Security
Even when the production environment is still on hardware, disaster recovery is quicker and easier when the systems are virtualized.
On a physical system, if something serious goes wrong, a complete re-install of the operating system is usually required, resulting in hours of recovery time.
However, when a clone or snapshot of the system is stored as a backup, this can be used a fast and reliable set-up of a virtual machine.
A virtual machine is not depended on specific hardware, this makes any server suitable to recover your machines on.


Ch x  Virtualization for desktops and servers [rephrasing suggestion for servers and individuals]
In the case of using a clone, you will only have the set up of the machine available. The longest delay would then be in restoring guest data.
[@Ki would like to look into a few use cases, also see http://www.quora.com/What-are-the-main-use-cases-for-virtualization]
When using a snapshot, the data as was when last made will be available immediately.


------------------------------------------------------------------
------------------------------------------------------------------
General thoughts on how users could read documentation. Realizing this might come close to the personas that are being defined.
General thoughts on how users could read documentation. Realizing this might come close to the personas that are being defined.


* As an advisor or manager with no technical background, I would probalby only read the chapter Virtualization 101. Because here I can find the basis for a business case, to which company specific calculations and graphs can be added.
* As an advisor or manager with no technical background, I would probably only read the chapter Virtualization 101. Because here I can find the basis for a business case, to which company specific calculations and graphs can be added.
(decission makers love graphes!)
(decision makers love graphs!)


* As a technical project manager I will go over all of the documentation, and might ask some specialists (about the security aspect for example)for further details. This is a good starting point to base a project plan on, in which a business case is included, but also the planning; what do we use it for? what is needed in hardware & software resources? what are the risks (and how do we solve this)?  what does the architecture look like? how much time do I need? and how many people, with which skills? Looking at the guide as it is, I think all of that is covered.
* As a technical project manager I will go over all of the documentation, and might ask some specialists (about the security aspect for example)for further details. This is a good starting point to base a project plan on, in which a business case is included, but also the planning; what do we use it for? what is needed in hardware & software resources? what are the risks (and how do we solve this)?  what does the architecture look like? how much time do I need? and how many people, with which skills? Looking at the guide as it is, I think all of that is covered.


* As a sysadmin I might start with the Chapter on How to install a Virtual machine. Now here we have some of the personas already defined.  
* As a sysadmin I might start with the Chapter on How to install a Virtual machine. Now here we have some of the personas already defined.  
Each would look for their own usecase; server, network, application, desktop. By adding a short list of these cases, with normal hardware spec, and possible links to where these cases are explained; and a short explanation of why only a simple setup is explained in this chapter (I read this as a desktop setup, going with the choices for the use of one core and the amount of memory), this is a good stand alone chapter, very hands on.
Each would look for their own use-case; server, network, application, desktop. By adding a short list of these cases, with normal hardware spec, and possible links to where these cases are explained; and a short explanation of why only a simple set-up is explained in this chapter (I read this as a desktop setup, going with the choices for the use of one core and the amount of memory), this is a good stand alone chapter, very hands on.

Revision as of 14:16, 30 September 2015

Outline for Getting Started

Current TOC

This TOC should be changed -please indicate what needs changing in a different color or with an arrow. Please put your name in the line that has the change so we can track it. Thanks!



Preface

   1. Document Conventions
       1.1. Typographic Conventions
       1.2. Pull-quote Conventions
       1.3. Notes and Warnings
   2. We Need Feedback!

1. Introduction

   1.1. Who should read this guide?
   1.2. Virtualization in Fedora Linux
   1.3. Virtualization resources

2. General Overview of Virtualization

   2.1. What is Virtualization?
   2.2. What are the costs of Virtualization
   2.3. Performance factors of Virtualization
   2.4. Flexibility options of Virtualization
   2.5. Disaster Recovery options and scenarios of Virtualization
   2.6. Security options and benefits of Virtualization
   2.7. Differences and commonalities of Virtualization for servers and individuals

3. Introduction to Fedora virtualization products

   3.1. KVM and virtualization in Fedora --> kirsti suggestion to just call it KVM? (since the fedora is mentioned in the main title  --> grundblom: I think we could use a chapter on how to make a vm in KVM like there is for boxes, and how to use libvirt tools.  --> Lnovich question / comment should we break this down into hypervisors  and other tools? 
   3.2. libvirt and libvirt tools
   3.3. Boxes
   3.4  Docker Containers --> grundblom: I have been using Docker containers as a virtualization tool, and while I dont think it is created for that purpose I would like to explore it here as an option since it works
   3.5. Storage
       3.5.1. Storage pools
       3.5.2. Storage volumes

4. Introduction to Boxes --> kirsti only a separate chapter for boxes, not for the other products? --> grundblom: I agree we should have sections for each product we mentioned in 4 I volunteer to write a section on how to make a vm in kvm.

   4.1. Features of Boxes
   4.2. How do I create a virtual machine in Boxes?
   4.3. How do I connect to other computers in Boxes?
   4.4. How do I change the settings of a machine in boxes?
   4.5. How do I delete a box?
   4.6. Boxes Tips and Tricks
   4.7. Advanced Commands in Boxes

5. Creating and Managing Guests with Virt-Manager --> smccann work toward common topic titles w/ Boxer chapter - should be covering same information

   5.1. System Requirements
   5.2. Installing Virtualization package groups
   5.3. Network Support
   5.4. Creating guests with virt-manager

A. Advanced Virtualization Concepts --> kirsti would this be a place to make a pointer to containers?

   A.1. Virtualized hardware devices
       A.1.1. Virtualized and emulated devices
       A.1.2. Para-virtualized devices
       A.1.3. Physical host devices
       A.1.4. CPU models
   A.2. guestfish
   A.3. Other useful tools
--> kirsti is it an idea to add a few dos and do nots, as in what would make good use cases for virtualization, and what not?  

B. Revision History

Changes to Content

Here you can list specific changes you would like to see made. In each instance please include some information that will help us find the location of the issue

Changes that are needed in the Getting Started Guide
Chapter/Section Link/URL Change Needed Who is requesting the Change Approved BZ Link
Ch 1 http://docs.fedoraproject.org/en-US/Fedora/22/html/Virtualization_Getting_Started_Guide/chap-Virtualization_Getting_Started-Introduction.html "The Fedora Virtualization Getting Started Guide introduces the basics of virtualization and assists with the navigation of other virtualization documentation and products that Fedora provides. This guide also explains the advantages of virtualization and dispels some common myths that exist regarding virtualization." leave out the second part (going with leaving out the misconceptions). First sentence could read "The Fedora Virtualization Getting Started Guide introduces the basics, and advantages of virtualization; and assists with the navigation of other virtualization documentation, and products that Fedora provides." (adding Oxford comma). Kirsti
ch2.1 http://docs.fedoraproject.org/en-US/Fedora/22/html/Virtualization_Getting_Started_Guide/chap-Virtualization_Getting_Started-What_Is_It.html Missing link in the note to Fedora Virtualization Deployment and Administration Guide Kirsti
ch2.2 http://docs.fedoraproject.org/en-US/Fedora/22/html/Virtualization_Getting_Started_Guide/sec-migration.html under live migration is a reference to fedora 19."In Fedora 19, shared storage is not necessary for storing guest images to be migrated." Does this still apply to fed 22? Kirsti
ch 3 http://docs.fedoraproject.org/en-US/Fedora/22/html/Virtualization_Getting_Started_Guide/chap-Virtualization_Getting_Started-Advantages.html when we decide to go without the misconceptions, we need to rephrase the first two paragraphs, willing to make the attempt. The chapter as a whole, with all the explanations would make a poor business case, I would not be able to use it to convince a manager to go Virtual Kirsti
ch3.3 http://docs.fedoraproject.org/en-US/Fedora/22/html/Virtualization_Getting_Started_Guide/ch03s03.html This chapter takes it from a misconception point of view. Searching the web I cannot come up easily with a good description, but is there a place in the admin manual where this subject is better explained? Could we work with something like: "While virtualization can speed processing up, it doesn't just magically make things better. Without the right architecture and tuning, virtualization will not deliver performance benefits." and then add a link to how to implement virtualization? Kirsti
ch3.4 http://docs.fedoraproject.org/en-US/Fedora/22/html/Virtualization_Getting_Started_Guide/ch03s04.html Is this all we can say about flexibility? nothing about expanding or decreasing the number of machines in your network, easy test environment set-up without using up massive amounts of resources, easy to install when using images... Kirsti

Random thoughts and things I have been looking into. Is this going anywhere usefull? Still reading up on a lot of things...


Proposal CH2 what I have now (WIP):

2. General Overview of Virtualization 2.1. What is Virtualization? /* keeping it as is /* general suggestion: go for short clear titles (like it was before)

Virtualization is a broad computing term used for running software, usually multiple operating systems, concurrently and in isolation from other programs on a single system. Most existing implementations of virtualization use a hypervisor, a software layer or subsystem that controls hardware and provides guest operating systems with access to underlying hardware. The hypervisor allows multiple operating systems, called guests, to run on the same physical system by offering virtualized hardware to the guest operating system. There are several methods for virtualizing operating systems.

/*do we add an FAQ here? suggestions for questions? Virtualization methods

Full virtualization

   Full virtualization uses the hardware features of the processor to provide guests with total abstraction of the underlying physical system. This creates a new virtual system, called a virtual machine, that allows guest operating systems to run without modifications. The guest operating system and any applications on the guest virtual machine are unaware of their virtualized environment and run normally. Hardware-assisted virtualization is the technique used for full virtualization with KVM (Kernel-based Virtual Machine) in Fedora. 

Para-virtualization

   Para-virtualization employs a collection of software and data structures that are presented to the virtualized guest, requiring software modifications in the guest to use the para-virtualized environment. Para-virtualization can encompass the entire kernel, as is the case for Xen para-virtualized guests, or drivers that virtualize I/O devices. 

Software virtualization (or emulation)

   Software virtualization uses slower binary translation and other emulation techniques to run unmodified operating systems. 

Note For more information and detailed instructions on guest installation, refer to the Fedora Virtualization Deployment and Administration Guide. /*add link when possible

2.2. Virtualization costs Before you consider to virtualize your environment it is important to perform a Return on Investment (ROI) analysis to determine the best use of virtualization in your environment. Consider the following benefits:

Smaller footprint

   Using virtualization negates much of the need for multiple physical platforms. Consolidating servers onto fewer machines means less physical space is required. This equates to less power being drawn for machine operation and cooling, resulting in reduced energy costs. This means more efficient energy resource management for your data centre.
 

Less maintenance Provided adequate planning is performed before migrating physical systems to virtualized ones, less time is spent maintaining them. This means less money being spent on various resources.

Extended life for installed software

   Older versions of software may not run on newer, bare metal machines directly. However, by running the older software virtually on a larger, faster system, the life of the software may be extended while taking advantage of the  performance from the newer system. 

2.3. Performance Modern servers are delivered with multiple CPU as a standard. This has significantly changed the possibilities with VMs. Depending on what you would like to use your VM for, and how many CPUs are available, you can now set up a VM with multiple CPUs. As discussed in the chapter about use cases for setting up a VM, all of these uses will have their own system requirements.

2.4. Flexibility


2.5. Disaster Recovery Disaster recovery has become part of the business plan. In case of IT, besides having a stable an efficient production environment, a place where this environment can be moved to is desired. To make sure the business loses as little time as possible to set up this shadow environment, virtualization might prove to be the best choice.

Even when the production environment is still on hardware, disaster recovery is quicker and easier when the systems are virtualized. On a physical system, if something serious goes wrong, a complete re-install of the operating system is usually required, resulting in hours of recovery time. However, when a clone or snapshot of the system is stored as a backup, this can be used a fast and reliable set-up of a virtual machine. A virtual machine is not depended on specific hardware, this makes any server suitable to recover your machines on.

In the case of using a clone, you will only have the set up of the machine available. The longest delay would then be in restoring guest data. When using a snapshot, the data as was when last made will be available immediately.


General thoughts on how users could read documentation. Realizing this might come close to the personas that are being defined.

  • As an advisor or manager with no technical background, I would probably only read the chapter Virtualization 101. Because here I can find the basis for a business case, to which company specific calculations and graphs can be added.

(decision makers love graphs!)

  • As a technical project manager I will go over all of the documentation, and might ask some specialists (about the security aspect for example)for further details. This is a good starting point to base a project plan on, in which a business case is included, but also the planning; what do we use it for? what is needed in hardware & software resources? what are the risks (and how do we solve this)? what does the architecture look like? how much time do I need? and how many people, with which skills? Looking at the guide as it is, I think all of that is covered.
  • As a sysadmin I might start with the Chapter on How to install a Virtual machine. Now here we have some of the personas already defined.

Each would look for their own use-case; server, network, application, desktop. By adding a short list of these cases, with normal hardware spec, and possible links to where these cases are explained; and a short explanation of why only a simple set-up is explained in this chapter (I read this as a desktop setup, going with the choices for the use of one core and the amount of memory), this is a good stand alone chapter, very hands on.