I have recently created a new logical volume on a freshly
installed
machine. I have successfully created an ext3 filesystem on
it, and can
mount and read/write files to it. However, I would now like
to reduce
the size of the logical volume. I have attempted to
lvreduce it (and
lvremove it) with the filesystem unmounted, but these
commands yield the
following error:
lvm> lvreduce -L -50G VolGroup00/LogVol06
/dev/cdrom: open failed: Read-only file system
WARNING: Reducing active logical volume to 156.53 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol06? [y/n]: y
Reducing logical volume LogVol06 to 156.53 GB
device-mapper: deps ioctl failed: Invalid argument
_deps: task run failed for (253:6)
Failed to add device (253:6) to dtree
Failed to suspend LogVol06
Additionally, the following error shows up in
/var/log/messages:
Jun 20 12:55:44 ripper kernel: device-mapper: one of name or
uuid must
be supplied, cmd(11)
I have run vgmknodes, but this does not appear to fix the
problem.
I have the following structure for the Volume Group
VolGroup00
[root ripper mapper]# lvs
LV VG Attr LSize Origin Snap% Move Log
Copy%
LogVol00 VolGroup00 -wi-ao 4.00G
LogVol01 VolGroup00 -wi-ao 2.00G
LogVol02 VolGroup00 -wi-ao 8.00G
LogVol03 VolGroup00 -wi-ao 4.00G
LogVol04 VolGroup00 -wi-ao 4.00G
LogVol05 VolGroup00 -wi-ao 4.00G
LogVol06 VolGroup00 -wi-a- 206.53G
[root ripper mapper]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup00 lvm2 a- 4.00G 0
/dev/sda5 VolGroup00 lvm2 a- 228.53G 0
LogVol06 is the problematic volume.
System details
--------------
OS Version:
Linux version 2.6.9-5.ELsmp (bhcompile thor.perf.redhat.com) (gcc
version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)) #1 SMP Wed Jan
5 19:29:47
EST 2005
LVM Version:
[root ripper mapper]# rpm -qa | grep -i lvm
lvm2-2.02.01-1.3.RHEL4
system-config-lvm-1.0.16-1.0
Other details possibly of use:
[root ripper mapper]# ls -l /dev/mapper
total 0
crw------- 1 root root 10, 63 Jun 9 13:37 control
brw------- 1 root root 253, 0 Jun 9 13:38
VolGroup00-LogVol00
brw------- 1 root root 253, 5 Jun 9 13:38
VolGroup00-LogVol01
brw------- 1 root root 253, 3 Jun 9 13:38
VolGroup00-LogVol02
brw------- 1 root root 253, 2 Jun 9 13:38
VolGroup00-LogVol03
brw------- 1 root root 253, 4 Jun 9 13:38
VolGroup00-LogVol04
brw------- 1 root root 253, 1 Jun 9 13:38
VolGroup00-LogVol05
brw-rw---- 1 root disk 253, 6 Jun 19 12:37
VolGroup00-LogVol06
[root ripper mapper]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda3 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/mapper/VolGroup00-LogVol05 on /home type ext3 (rw)
/dev/mapper/VolGroup00-LogVol03 on /tmp type ext3 (rw)
/dev/mapper/VolGroup00-LogVol02 on /usr type ext3 (rw)
/dev/mapper/VolGroup00-LogVol04 on /var type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
lvm.conf:
# This is an example configuration file for the LVM2 system.
# It contains the default settings that would be used if
there was no
# /etc/lvm/lvm.conf file.
#
# Refer to 'man lvm.conf' for further information
including the file layout.
#
# To put this file in a different directory and override
/etc/lvm set
# the environment variable LVM_SYSTEM_DIR before running the
tools.
# This section allows you to configure which block devices
should
# be used by the LVM system.
devices {
# Where do you want your volume groups to appear ?
dir = "/dev"
# An array of directories that contain the device nodes
you wish
# to use with LVM2.
scan = [ "/dev" ]
# A filter that tells LVM2 to only use a restricted set
of devices.
# The filter consists of an array of regular
expressions. These
# expressions can be delimited by a character of your
choice, and
# prefixed with either an 'a' (for accept) or 'r'
(for reject).
# The first expression found to match a device name
determines if
# the device will be accepted or rejected (ignored).
Devices that
# don't match any patterns are accepted.
# Be careful if there there are symbolic links or
multiple filesystem
# entries for the same device as each name is checked
separately
against
# the list of patterns. The effect is that if any name
matches any 'a'
# pattern, the device is accepted; otherwise if any
name matches
any 'r'
# pattern it is rejected; otherwise it is accepted.
# Don't have more than one filter line active at once:
only one
gets used.
# Run vgscan after you change this parameter to ensure
that
# the cache file gets regenerated (see below).
# If it doesn't do what you expect, check the output
of 'vgscan -vvvv'.
# By default we accept every block device:
filter = [ "a/.*/" ]
# Exclude the cdrom drive
# filter = [ "r|/dev/cdrom|" ]
# When testing I like to work with just loopback
devices:
# filter = [ "a/loop/", "r/.*/"
]
# Or maybe all loops and ide drives except hdc:
# filter =[ "a|loop|",
"r|/dev/hdc|", "a|/dev/ide|",
"r|.*|" ]
# Use anchors if you want to be really specific
# filter = [ "a|^/dev/hda8$|",
"r/.*/" ]
# The results of the filtering are cached on disk to
avoid
# rescanning dud devices (which can take a very long
time). By
# default this cache file is hidden in the /etc/lvm
directory.
# It is safe to delete this file: the tools regenerate
it.
cache = "/etc/lvm/.cache"
# You can turn off writing this cache file by setting
this to 0.
write_cache_state = 1
# Advanced settings.
# List of pairs of additional acceptable block device
types found
# in /proc/devices with maximum (non-zero) number of
partitions.
# types = [ "fd", 16 ]
# If sysfs is mounted (2.6 kernels) restrict device
scanning to
# the block devices it believes are valid.
# 1 enables; 0 disables.
sysfs_scan = 1
# By default, LVM2 will ignore devices used as
components of
# software RAID (md) devices by looking for md
superblocks.
# 1 enables; 0 disables.
md_component_detection = 1
}
# This section that allows you to configure the nature of
the
# information that LVM2 reports.
log {
# Controls the messages sent to stdout or stderr.
# There are three levels of verbosity, 3 being the most
verbose.
verbose = 0
# Should we send log messages through syslog?
# 1 is yes; 0 is no.
syslog = 1
# Should we log error and debug messages to a file?
# By default there is no log file.
#file = "/var/log/lvm2.log"
# Should we overwrite the log file each time the
program is run?
# By default we append.
overwrite = 0
# What level of log messages should we send to the log
file and/or
syslog?
# There are 6 syslog-like log levels currently in use -
2 to 7
inclusive.
# 7 is the most verbose (LOG_DEBUG).
level = 0
# Format of output messages
# Whether or not (1 or 0) to indent messages according
to their
severity
indent = 1
# Whether or not (1 or 0) to display the command name
on each line
output
command_names = 0
# A prefix to use before the message text (but after
the command name,
# if selected). Default is two spaces, so you can
see/grep the
severity
# of each message.
prefix = " "
# To make the messages look similar to the original LVM
tools use:
# indent = 0
# command_names = 1
# prefix = " -- "
# Set this if you want log messages during activation.
# Don't use this in low memory situations (can
deadlock).
# activation = 0
}
# Configuration of metadata backups and archiving. In LVM2
when we
# talk about a 'backup' we mean making a copy of the
metadata for the
# *current* system. The 'archive' contains old metadata
configurations.
# Backups are stored in a human readeable text format.
backup {
# Should we maintain a backup of the current metadata
configuration ?
# Use 1 for Yes; 0 for No.
# Think very hard before turning this off!
backup = 1
# Where shall we keep it ?
# Remember to back up this directory regularly!
backup_dir = "/etc/lvm/backup"
# Should we maintain an archive of old metadata
configurations.
# Use 1 for Yes; 0 for No.
# On by default. Think very hard before turning this
off.
archive = 1
# Where should archived files go ?
# Remember to back up this directory regularly!
archive_dir = "/etc/lvm/archive"
# What is the minimum number of archive files you wish
to keep ?
retain_min = 10
# What is the minimum time you wish to keep an archive
file for ?
retain_days = 30
}
# Settings for the running LVM2 in shell (readline) mode.
shell {
# Number of lines of history to store in ~/.lvm_history
history_size = 100
}
# Miscellaneous global LVM2 settings
global {
# The file creation mask for any files and directories
created.
# Interpreted as octal if the first digit is zero.
umask = 077
# Allow other users to read the files
#umask = 022
# Enabling test mode means that no changes to the on
disk metadata
# will be made. Equivalent to having the -t option on
every
# command. Defaults to off.
test = 0
# Whether or not to communicate with the kernel
device-mapper.
# Set to 0 if you want to use the tools to manipulate
LVM metadata
# without activating any logical volumes.
# If the device-mapper kernel driver is not present in
your kernel
# setting this to 0 should suppress the error messages.
activation = 1
# If we can't communicate with device-mapper, should
we try running
# the LVM1 tools?
# This option only applies to 2.4 kernels and is
provided to help you
# switch between device-mapper kernels and LVM1
kernels.
# The LVM1 tools need to be installed with .lvm1
suffices
# e.g. vgscan.lvm1 and they will stop working after you
start using
# the new lvm2 on-disk metadata format.
# The default value is set when the tools are built.
# fallback_to_lvm1 = 0
# The default metadata format that commands should use
- "lvm1" or
"lvm2".
# The command line override is -M1 or -M2.
# Defaults to "lvm1" if compiled in, else
"lvm2".
# format = "lvm1"
# Location of proc filesystem
proc = "/proc"
# Type of locking to use. Defaults to file-based
locking (1).
# Turn locking off by setting to 0 (dangerous: risks
metadata
corruption
# if LVM2 commands get run concurrently).
locking_type = 1
# Local non-LV directory that holds file-based locks
while commands are
# in progress. A directory like /tmp that may get
wiped on reboot
is OK.
locking_dir = "/var/lock/lvm"
# Other entries can go here to allow you to load shared
libraries
# e.g. if support for LVM1 metadata was compiled as a
shared
library use
# format_libraries = "liblvm2format1.so"
# Full pathnames can be given.
# Search this directory first for shared libraries.
# library_dir = "/lib"
}
activation {
# Device used in place of missing stripes if activating
incomplete
volume.
# For now, you need to set this up yourself first (e.g.
with 'dmsetup')
# For example, you could make it return I/O errors
using the 'error'
# target or make it return zeros.
missing_stripe_filler = "/dev/ioerror"
# Size (in KB) of each copy operation when mirroring
mirror_region_size = 512
# How much stack (in KB) to reserve for use while
devices suspended
reserved_stack = 256
# How much memory (in KB) to reserve for use while
devices suspended
reserved_memory = 8192
# Nice value used while devices suspended
process_priority = -18
# If volume_list is defined, each LV is only activated
if there is a
# match against the list.
# "vgname" and
"vgname/lvname" are matched exactly.
# " tag" matches any tag set in the LV
or VG.
# " *" matches if any tag defined on the
host is also set in the
LV or VG
#
# volume_list = [ "vg1",
"vg2/lvol1", " tag1", " *"
]
}
####################
# Advanced section #
####################
# Metadata settings
#
# metadata {
# Default number of copies of metadata to hold on each
PV. 0, 1 or 2.
# You might want to override it from the command line
with 0
# when running pvcreate on new PVs which are to be
added to large VGs.
# pvmetadatacopies = 1
# Approximate default size of on-disk metadata areas in
sectors.
# You should increase this if you have large volume
groups or
# you want to retain a large on-disk history of your
metadata changes.
# pvmetadatasize = 255
# List of directories holding live copies of text
format metadata.
# These directories must not be on logical volumes!
# It's possible to use LVM2 with a couple of
directories here,
# preferably on different (non-LV) filesystems, and
with no other
# on-disk metadata (pvmetadatacopies = 0). Or this can
be in
# addition to on-disk metadata areas.
# The feature was originally added to simplify testing
and is not
# supported under low memory situations - the machine
could lock up.
#
# Never edit any files in these directories by hand
unless you
# you are absolutely sure you know what you are doing!
Use
# the supplied toolset to make changes (e.g.
vgcfgrestore).
# dirs = [ "/etc/lvm/metadata",
"/mnt/disk2/lvm/metadata2" ]
#}
[root ripper mapper]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU
3.80GHz
stepping : 10
cpu MHz : 3790.648
cache size : 2048 KB
fpu : yes
fpu_exception : yes
cpuid level : 3
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic
sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht
tm syscall
nx lm pni monitor ds_cpl est tm2 cid cx16 xtpr ts
bogomips : 7520.25
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual
power management:
Thanks,
Steve Phelps
Ripple Software Ltd.
--
redhat-list mailing list
unsubscribe mailto:redhat-list-request redhat.com?subject=unsubscribe
h
ttps://www.redhat.com/mailman/listinfo/redhat-list
|