Bug 1040874

Summary: [FeatureRequest] Support putting filesystem or LVM PV on whole disk device (no partition table)
Product: [Fedora] Fedora Reporter: Pushpendra Chavan <pchavan>
Component: anacondaAssignee: Anaconda Maintenance Team <anaconda-maint-list>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 20CC: anaconda-maint-list, Bert.Deknuydt, dberry, dutra.julio, g.kaviyarasu, jonathan, matthias.sauer, vanmeeuwen+fedora
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-11-24 16:41:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Pushpendra Chavan 2013-12-12 09:15:19 UTC
Description of problem:

Q : What is this feature about?

To add the possibility to avoid partition table to be created during installation.

Q : Why do we need this?

- If we resize the disk, the partition table makes the procedure difficult as we need to resize the partition as well. 

Q : How can we would like to achieve this?

During installation, both interactive and kickstart, Anaconda should offer the possibility not to create a partition, and to put directly the data (PV or filesystem) on the disk.

Q :  How can we/Fedora Community test to confirm the requirement is successfully implemented?

-> Install a Fedora on a machine with at least 2 disks (sda/sdb)
-> user should be able to do the following and machine should boot fine :
- Install the full root FS on sda (/boot included)
- Install a PV on sdb
etc.

Comment 1 Pushpendra Chavan 2014-07-03 12:53:27 UTC
Hello,

Follow up. I think this is possible in Red Hat Enterprise Linux itself. Might be working itself in Fedora as well, See the following steps.

[root@localhost ~]# lvm
lvm> pvcreate /dev/vdc
  Physical volume "/dev/vdc" successfully created
lvm> vgcreate newvg /dev/vdc
  Volume group "newvg" successfully created
lvm> lvcreate -L 100M -n pushpendra newvg
  Logical volume "pushpendra" created
lvm> exit
  Exiting.

[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/newvg/pushpendra
  LV Name                pushpendra
  VG Name                newvg
  LV UUID                Lmjbtf-gR5p-11yG-7V4w-hI81-jl3O-Itb7Kd
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2014-07-03 12:47:26 -0600
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

[root@localhost ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/vdc
  VG Name               newvg
  PV Size               8.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2047
  Free PE               2022
  Allocated PE          25
  PV UUID               h0WL7R-ld25-A1ak-aR7Q-UmL8-ZJQE-9KsHGZ

[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               newvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               8.00 GiB
  PE Size               4.00 MiB
  Total PE              2047
  Alloc PE / Size       25 / 100.00 MiB
  Free  PE / Size       2022 / 7.90 GiB
  VG UUID               6Nl6md-dfu4-Cvai-rEZv-1hI7-XVn1-cEgWEh

If the lvm commands are used in %pre script, It will work.

- Pushpendra

Comment 2 Donald Berry 2014-11-14 16:42:51 UTC
This works from kickstart with 'part pv.02 --onpart=vdb'.  The following was used to create PV /dev/vdb on a libvirt (KVM) VM, RHEL 6.6. host:

# cat /var/www/html/ks6.cfg
...
# Partition Information
zerombr
part /boot --fstype=ext4 --size=100 --asprimary --ondisk=vda
part pv.01 --size=100 --grow --asprimary --ondisk=vda
volgroup vg00 pv.01
logvol swap --vgname=vg00 --size=512  --name=swap --fstype=swap
logvol /    --vgname=vg00 --size=4096 --name=root --fstype=ext4

part pv.02 --onpart=vdb
volgroup appvg pv.02
logvol /app --vgname=appvg --size=1024 --name=applv --fstype=ext4 --grow --fsoptions="defaults,noatime"
...

# virt-install -n vm8 -r 1024 --vcpus 1 --disk /VirtualMachines/vm8.img,size=8 --disk /VirtualMachines/vm8-1.img,size=2 -l http://download.devel.redhat.com/released/RHEL-6/6.5/Server/x86_64/os/ -x "ks=http://192.168.122.1/ks6.cfg"

[root@localhost ~]# pvs
  PV         VG    Fmt  Attr PSize PFree
  /dev/vda2  vg00  lvm2 a--  7.88g 3.38g
  /dev/vdb   appvg lvm2 a--  1.97g    0 

[root@localhost ~]# lvs
  LV    VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  applv appvg -wi-ao----   1.97g                                             
  root  vg00  -wi-ao----   4.00g                                             
  swap  vg00  -wi-ao---- 512.00m

Comment 4 Pushpendra Chavan 2014-11-23 15:38:38 UTC
This feature really seems to be present. My bad that I didn't find the way to implement this. Thanks to Donald for finding the better way. --onpart works great than that of --ondisk

I confirmed that with the following kickstart file.

==================================================================
install
text
cdrom
lang en_US
keyboard us
network --bootproto dhcp onboot=yes
zerombr
bootloader --location mbr --driveorder=vda,vdb
timezone America/Denver
auth --enablemd5 --enableshadow
selinux --disabled
rootpw redhat
firewall --disabled
skipx
clearpart --all --initlabel
reboot

part /boot --fstype=ext3 --size=200 --ondisk=vda
part pv.01 --size=1000 --grow --ondisk=vda
part swap --size=1000  --fstype=swap --ondisk=vda
volgroup myvg pv.01
logvol /home --vgname=myvg --name=homevol --size=500
logvol / --vgname=myvg --name=rootvol --size=1000 --grow

part pv.02 --onpart=vdb
volgroup appvg pv.02
logvol /app --vgname=appvg --size=1024 --name=applv --fstype=ext4 --grow

%packages
@base
-kexec-tools
-NetworkManager
==================================================================
And the output was as follows
==================================================================
[root@localhost ~]# pvs
  PV         VG    Fmt  Attr PSize PFree
  /dev/vda3  myvg  lvm2 a--  6.81g    0
  /dev/vdb   appvg lvm2 a--  7.97g    0
[root@localhost ~]# vgs
  VG    #PV #LV #SN Attr   VSize VFree
  appvg   1   1   0 wz--n- 7.97g    0
  myvg    1   2   0 wz--n- 6.81g    0
[root@localhost ~]# lvs
  LV      VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  applv   appvg -wi-ao----   7.97g                                             
  homevol myvg  -wi-ao---- 512.00m                                             
  rootvol myvg  -wi-ao----   6.31g                          .
==================================================================

This makes me think that the Feature request is no more valid.

- Pushpendra Chavan

Comment 5 David Shea 2014-11-24 16:41:20 UTC
Closing per comment 4.