[Thincrust-devel] [Overview] appliance-tools patches on LVM support
Joey Boggs
jboggs at redhat.com
Mon Jan 30 16:39:18 UTC 2012
On 01/30/2012 04:15 AM, Marek Goldmann wrote:
> Hi all,
>
> First of all - thanks for the patch! It would be very nice to expose
> kickstart's LVM support.
>
> Now the hard part - sadly I am not the right guy to review that patch.
> Would anyone be willing to review it instead of me?
>
> --Marek
>
> On 01/12/2012 06:44 AM, henry_huang at trendmicro.com.cn wrote:
>> Hi, Marek
>>
>> Days ago, my colleague (Yongjun) has sent the four patches on help
>> appliance-tools support LVM.
>> As you requested, I will add more description on these patches here.
>>
>> [Background]
>> The Appliance Creation Tool is a nice tool to create Appliance Images
>> from a redhat-series kickstart file. This tool uses the liveCD
>> creator API as well as patches to the LIVECD API to create a
>> multi-partitioned disk image, contained in the applianace-tools package.
>> These disk images can then be booted in a virtual container such as
>> Xen, KVM, and VMware. Currently, BoxGrinder (BG) based on the
>> appliance-tools is a popular project to grind out appliances for
>> multiple virtualization and Cloud providers, like Amazon EC2.
>> Actually we (TrendMicro) have many projects working on these fields,
>> and we'd like to share what we have now in these fields, like LVM
>> support in appliance-tools here.
>>
>> [Problem]
>> However, as we know, there is no current support on logical volume
>> management (LVM) in appliance-tools. LVM has long been a valuable
>> technique on managing disk drives and similar mass-storage devices.
>> We can get much benefit from LVM:
>> 1. Managing large hard disk farms by letting you add disks, replace
>> disks, copy and share contents from one disk to another without
>> disrupting service (hot swapping).
>> 2. Making backups by taking "snapshots."
>> 3. Creating single logical volumes of multiple physical volumes or
>> entire hard disks, allowing for dynamic volume resizing.
>> Therefore, our patches are working on this problem, to make
>> appliance-tools support LVM.
>>
>> [Solution]
>> We have provided four patches on this problem.
>> [PATCH 1/4] Add LVM physical volume partition type support
>> [PATCH 2/4] Add Logical Volume Management(LVM) group interface to
>> partitionedfs
>> [PATCH 3/4] Add Logical Volume interface to partitionedfs
>> [PATCH 4/4] Add Logical Volume Management to ApplianceImageCreator
>>
>> 1. Overview on appliance-tools components.
>> Appliance-tools is mainly based on "imgcreate" library in LiveCD tools.
>> Appliance-tools: __init__.py + appliance.py + partitionedfs.py
>> * __init__.py: => appcreate, support for creating appliance
>> images
>> * appliance.py: Appliance Image Creator class
>> * partitionedfs.py: partitioned files system class, extends fs.py
>> from imgcreate/fs.py
>>
>> 2. Key problems in partitionedfs.py components.
>> a) imgcreate/kickstart.py does not support LVM configuration on
>> kickstart files.
>> b) imgcreate/fs.py does not support LVM interfaces
>>
>> For the first problem:
>> However, patches on imgcreate/kickstart.py to support LVM
>> configuration are much more difficult and it also will affect
>> upstream live-tools.
>> As "pykickstart" library (already used in appliance-tools) has
>> appropriate LVM options, we decide to reuse it.
>> @@ -120,6 +128,8 @@ class ApplianceImageCreator(ImageCreator):
>>
>> #list of partitions from kickstart file
>> parts = kickstart.get_partitions(self.ks)
>> + groups = self.ks.handler.volgroup.vgList
>> + volumes = self.ks.handler.logvol.lvList
>>
>> #list of disks where a disk is an dict with name: and size
>> disks = []
>> More information can be found in [PATCH 4/4].
>>
>> For the second problem:
>> We have to add a new interface on LVM support at "partitionedfs.py".
>> Here are three important functions added to support LVM in
>> "partitionedfs.py".
>> self.__format_volumes()
>> self.__map_volumes()
>> self.__unmap_volumes()
>> More information can be found in [PATCH 1/4], [PATCH 2/4], [PATCH 3/4]
>>
>> [TODO]
>> 1. Our patches currently do not support for grub2.
>> 2. We will support to calculate LVM size to fit the size of pv.<id>,
>> as --grow support for "logvol" options.
>>
>> If you have any comments, please let me know.
>> Thanks& Best wishes,
>>
>> Henry Huang | QA Engineer, CDC Enterprise Segment
>> Building B, Soho International Plaza, No.48
>> Ning Nan Avenue, Nanjing 210012, P. R. China
>> Office: 86-25-52386680
>> TREND MICRO EMAIL NOTICE
>> The information contained in this email and any attachments is
>> confidential and may be subject to copyright or other intellectual
>> property protection. If you are not the intended recipient, you are
>> not authorized to use or disclose this information, and we request
>> that you notify us by reply mail or telephone and delete the original
>> message from your mail system.
>>
>
> _______________________________________________
> Thincrust-devel mailing list
> Thincrust-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/thincrust-devel
I'll try and get to it this afternoon EST, if not tomorrow
More information about the Thincrust-devel
mailing list