[Drbd-dev] [GIT PULL] drbd-8.4.2 for the linux-3.8 merge window
Philipp Reisner
philipp.reisner at linbit.com
Fri Nov 9 12:36:39 CET 2012
Hi Jens,
Please pull drbd-8.4.2 into your for-3.8/drivers branch.
The most noticeable change is the support for multiple replicated
volumes in a single DRBD connection.
This release requires new drbd userland tools >= 8.4.0 (available
since July 2011).
8.4.x is network protocol compatible with all previous releaes.
This release brings a new meta-data format. Forward (8.3 -> 8.4)
conversion happens complete seamless. Backward conversion
is done by a single command (drbdadm apply-al res).
The "recent changes" chapter of our user's guide describes all
changes in detail:
http://www.drbd.org/users-guide/ap-recent-changes.html
Changelog
8.4.2 (api:genl1/proto:86-100)
--------
* Go into inconsistent disk state with on-io-error=pass-on policy
* Timeouts for requests processing on the peer (previously that
worked only if the data socket was congested)
* Conflicting write detection is now based on an interval tree,
removed the hash-tables (necessary for the unlimited BIO sizes)
* Support for multiple volumes (minors, block devices) per connection;
up to 65536 volumes per connection supported
* Reduced IO latencies during some state changes (esp. start resync)
* New on disk format for the AL: double capacity; 4k aligned IO; same space
* Multiple AL changes in a single transaction (precondition for
unlimited BIO sizes)
* DRBD no longer imposes any limit on BIO sizes
* Removed DRBD's limits on the number of minor devices
* DRBD's minors can now be removed (not only unconfigured)
* Switched the user space interface form connector to generic netlink
* The wire-protocol is now a regular connection option, which can be
changed while the device is online
* IO freezing/thawing is done on connection (all volumes) level
* fencing is done on connection (all volumes) level
* Enforce application of activity log after primary crash in user space
* New default values (compared to drbd-8.3) for: minor-count, ko-count, al-extents,
c-plan-ahead, c-fill-target, c-min-rate, use-rle, on-io-error
* Optional load balancing for read requests: new keyword "read-balance"
* New option 'al-updates no' to disable writing transactions into the
activity log. It is use full if you prefer a full sync after a primary
crash, for improved performance of a spread out random write work load
* Expose the data generation identifies via sysfs
Jens, regarding the code:
It has the sysfs bits in again. The reason for that is that we want to
expose more information by that, and remove the /proc/drbd with the
next evolutionary step. -- In case this is a show stopper, let me
remove the sysfs bits.
Here is the git-pull-request test:
(The patch subjects removed to make the mail more digestible)
The following changes since commit ccae7868b0c5697508a541c531cf96b361d62c1c:
drbd: log request sector offset and size for IO errors (2012-10-30 08:39:18 +0100)
are available in the git repository at:
git://git.drbd.org/linux-drbd.git for-jens_drbd-8.4.2
for you to fetch changes up to e877f7fdc0b1052b0e881e61f9290268eb21aa2f:
drbd: use copy_highpage (2012-11-09 12:06:44 +0100)
----------------------------------------------------------------
Akinobu Mita (1):
drbd: use copy_highpage
Andreas Gruenbacher (210):
drbd: Get rid of req_validator_fn typedef
[...]
David Howells (1):
DRBD: Fix comparison always false warning due to long/long long compare
Jing Wang (1):
drbd: check return of kmalloc in receive_uuids
Lars Ellenberg (138):
drbd: simplify condition in drbd_may_do_local_read()
[...]
Philipp Marek (1):
drbd: pass some more information to userspace.
Philipp Reisner (234):
idr: idr_for_each_entry() macro
[...]
drivers/block/drbd/Makefile | 2 +
drivers/block/drbd/drbd_actlog.c | 689 +++----
drivers/block/drbd/drbd_bitmap.c | 227 ++-
drivers/block/drbd/drbd_int.h | 1399 ++++++-------
drivers/block/drbd/drbd_interval.c | 207 ++
drivers/block/drbd/drbd_interval.h | 40 +
drivers/block/drbd/drbd_main.c | 3918 ++++++++++++++----------------------
drivers/block/drbd/drbd_nl.c | 3391 ++++++++++++++++++-------------
drivers/block/drbd/drbd_nla.c | 55 +
drivers/block/drbd/drbd_nla.h | 8 +
drivers/block/drbd/drbd_proc.c | 33 +-
drivers/block/drbd/drbd_receiver.c | 3883 ++++++++++++++++++++---------------
drivers/block/drbd/drbd_req.c | 1569 +++++++--------
drivers/block/drbd/drbd_req.h | 187 +-
drivers/block/drbd/drbd_state.c | 1857 +++++++++++++++++
drivers/block/drbd/drbd_state.h | 161 ++
drivers/block/drbd/drbd_strings.c | 1 +
drivers/block/drbd/drbd_sysfs.c | 86 +
drivers/block/drbd/drbd_worker.c | 1168 ++++++-----
drivers/block/drbd/drbd_wrappers.h | 11 +-
include/linux/drbd.h | 81 +-
include/linux/drbd_genl.h | 378 ++++
include/linux/drbd_genl_api.h | 55 +
include/linux/drbd_limits.h | 90 +-
include/linux/drbd_nl.h | 164 --
include/linux/drbd_tag_magic.h | 84 -
include/linux/genl_magic_func.h | 422 ++++
include/linux/genl_magic_struct.h | 277 +++
include/linux/idr.h | 11 +
include/linux/lru_cache.h | 67 +-
lib/lru_cache.c | 359 ++--
31 files changed, 12238 insertions(+), 8642 deletions(-)
create mode 100644 drivers/block/drbd/drbd_interval.c
create mode 100644 drivers/block/drbd/drbd_interval.h
create mode 100644 drivers/block/drbd/drbd_nla.c
create mode 100644 drivers/block/drbd/drbd_nla.h
create mode 100644 drivers/block/drbd/drbd_state.c
create mode 100644 drivers/block/drbd/drbd_state.h
create mode 100644 drivers/block/drbd/drbd_sysfs.c
create mode 100644 include/linux/drbd_genl.h
create mode 100644 include/linux/drbd_genl_api.h
delete mode 100644 include/linux/drbd_nl.h
delete mode 100644 include/linux/drbd_tag_magic.h
create mode 100644 include/linux/genl_magic_func.h
create mode 100644 include/linux/genl_magic_struct.h
Best regards,
Philipp
More information about the drbd-dev
mailing list