{"id":19378840,"url":"https://github.com/linbit/windrbd","last_synced_at":"2025-04-09T16:17:29.921Z","repository":{"id":46606262,"uuid":"109835513","full_name":"LINBIT/windrbd","owner":"LINBIT","description":"DRBD driver for windows","archived":false,"fork":false,"pushed_at":"2025-04-09T12:30:53.000Z","size":201031,"stargazers_count":52,"open_issues_count":5,"forks_count":21,"subscribers_count":22,"default_branch":"stable","last_synced_at":"2025-04-09T16:17:16.614Z","etag":null,"topics":["drbd","windows"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LINBIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-07T12:53:40.000Z","updated_at":"2025-02-05T04:24:33.000Z","dependencies_parsed_at":"2023-11-07T16:39:23.628Z","dependency_job_id":"a8d047d0-ab52-4ed8-a853-169d9d8d7be1","html_url":"https://github.com/LINBIT/windrbd","commit_stats":{"total_commits":4679,"total_committers":5,"mean_commits":935.8,"dds":0.08655695661466123,"last_synced_commit":"6dac59aa307848fe628bd232e92024717ea46a34"},"previous_names":[],"tags_count":139,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fwindrbd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fwindrbd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fwindrbd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LINBIT%2Fwindrbd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LINBIT","download_url":"https://codeload.github.com/LINBIT/windrbd/tar.gz/refs/heads/stable","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065283,"owners_count":21041872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drbd","windows"],"created_at":"2024-11-10T09:07:34.489Z","updated_at":"2025-04-09T16:17:29.893Z","avatar_url":"https://github.com/LINBIT.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"First things first\n==================\n\nClone this repository with \n\n\tgit clone --recursive \u003curl\u003e\n\nelse you get an incomplete checkout.\n\nIf you need installable binaries (self-signed) please go to\n\nhttps://linbit.com/linbit-software-download-page-for-linstor-and-drbd-linux-driver/#drbd-windows\n\nYou will have to put your Windows machine into test mode\nfor the driver to load. To do so run\n\n\tbcdedit /set TESTSIGNING ON\n\nas Administrator and reboot the machine.\n\nIf you need support or if you need officially signed binaries\n(no need for testmode), please contact Linbit (www.linbit.com)\nat sales@linbit.com\n\nWhat is WinDRBD?\n================\n\nWinDRBD is a port of Linbit's Distributed Replicated Block Device\nLinux driver to Microsoft Windows. Technically it is a thin\ncompatibility layer that maps Linux specific kernel API calls to the\nMicrosoft Windows NT Kernel API.\n\nDRBD itself is used to build High Availability clusters by replicating\ncontents of block devices over a network to (up to 31) other nodes.\n\nWinDRBD is based on DRBD 9. It was originally started by Korean\ncompany Mantech and was later rewritten by Johannes Thoma for Linbit.\n\nDRBD devices are exported as SCSI disks as soon as the resource\nbecomes primary and can be partitioned and formatted with the\nstandard Windows tools (diskpart, partition editor in control\npanel, powershell).\n\nWhat else is needed?\n====================\n\nIf you have a binary package, you don't need to install CygWin since\nthe Cygwin DLL comes with the binary package. Commands like drbdadm and\nwindrbd should work out-of-the-box with the Windows cmd shell.\n\nWe strongly recommend to use the binary packages provided by\nLinbit since they are signed with a Microsoft key and therefore\nshould load without putting Windows into test mode.\n\nFor detailed build instructions, please see the file INSTALL. Having\nsaid that you need a Windows box with CygWin installed and a Linux\nbox to build WinDRBD from source.\n\nFor building you need Ewdk from Microsoft and a separate Linux Box\nwith spatch (concinelle) installed.\n\nYou need a recent version of drbd-utils. To obtain it, do a:\n\ngit clone --recursive https://github.com/LINBIT/drbd-utils.git\n\nand follow the build instruction in README-windrbd.md file of the\nrepo.\n\nConfiguring DRBD\n================\n\nThe DRBD config files can be found in following folder:\n\n\tC:\\windrbd\\etc\\drbd.d\n\nThe C:\\windrbd folder can be configured at installation time (use this for\nexample if your C: drive is read only).\n\nPut your resources (extension .res) into the C:\\windrbd\\etc\\drbd.d\nfolder (from within a CygWin shell you can access this via\n\n\t/cygdrive/c/windrbd/etc/drbd.d/\u003cname\u003e.res\n\nThen with\n\n\tdrbdadm up \u003cname\u003e\n\nyou can bring your DRBD resource up. Please refer to the DRBD\nUsers guide (be sure to pick the 9.0 version) for more information\nof how to configure and administrate DRBD. Most drbdadm commands\nshould work exactly like with the Linux version of DRBD.\n\nNote that since WinDRBD and DRBD are very similar many procedures\nfrom the DRBD user's guide should also work with WinDRBD. Currently\nthere is no separate WinDRBD user's guide.\n\nThere is also a WinDRBD specific tech guide which explains how\nto prepare two Windows Server 2016 nodes for use with WinDRBD.\nPlease see the Linbit website for that guide.\n\nAlso there are some newer (beginning 2023) articles on\nhttps://kb.linbit.com\n\nDifferences to Linux DRBD\n=========================\n\nNote that there is a more detailed documentation of the differences\non http://kb.linbit.com\n\nIn the configuration the only difference to Linux DRBD is that block\ndevices are specified as you would expect it under Microsoft Windows,\nthat is drive letters or GUID's are used. Examples:\n\n\tdisk \"F:\";\n\t# or:\n\tdisk \"0b098289-8295-11e7-bddb-0800274272c4\";\n\nWe recommend not to assign drive letters to backing devices, since\nthat easily may confuse the user. You can use the mountvol utility\nto find the GUID of a device.\n\nDisk devices present themselves as a regular SCSI disk\n(like a physical hard disk) and appear as disk in the\nWindows partition manager (and also in device manager).\nWith partition manager a partition table can be created\nand then partitions (with assigned drive letters) can\nbe created on the disk. The partitions can be formatted\nwith all supported file systems. This means that\nthat normally there is be a partition table on the disk (under\nLinux, kpartx can be used to create device nodes for\neach partition).\n\nExample for a disk device would be:\n\n\tdevice minor 42;\n\n(with no mount point). Mount points can be assigned with\npartition manager.\n\nA special case of the disk device is the boot device. Booting\nfrom a remote (Linux) server is possible now (however \nwithout local backing storage and installation is quite\ndifficult now). There is a document on \n\n\thttps://downloads.linbit.com/\n\n(\"Setting up WinDRBD diskless boot\") that describes the\nprocess (which is subject to change).\n\nCurrent limitations\n===================\n\nThe current 1.1 branch has following restrictions:\n\n  * Auto-promote is not supported.\n\n  * No read access when there are only secondaries.\n\n  * For booting via WinDRBD the installation onto a WinDRBD volume\n    is not possible yet with the Windows installer GUI.\n\n  * Currently no 32-Bit version is supported, only 64 bit.\n\nLogging\n=======\n\nTo view the log file go to\n\n\tC:\\windrbd\\windrbd-kernel.log\n\nIf you need remote logging, please read on.\n\nWe use syslog UDP packets and a Linux host to debug WinDRBD.\n\nTo configure the log host set a Registry key (string value):\n\n\tComputer\\HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\drbd\\syslog_ip\n\nand assign it the IP address.\n\nYou can use \n\n\twindrbd set-syslog-ip ipv4-address\n\nto change the syslog IP for this session (the registry key is only\nevaluated at server start).\n\nIf you are logging to the local Windows machine, use 127.0.0.1 as\nIP address (this is the default).\n\nThere is also a logfile written by the installer located in the\n%TEMP% directory. It should be consulted when something with the\ninstallation goes wrong.\n\nVersion history\n===============\n\n * 0.1 (Oct 25, 2017): Basic I/O works with separate DRBD device.\n * 0.2 (Nov 13, 2017): Creation and basic usage of NT filesystem on DRBD \n\t\t    device works.\n * 0.2.1 (Nov 16, 2017): Patch bootsector to hide NTFS on backing device\n\t\t    from NTFS driver.\n * 0.3.0 (Dec 20, 2017): Connection from windrbd to Linux DRBD works.\n * 0.3.1 (Dec 20, 2017): Fixed a blue screen introduced with 0.3.0\n * 0.3.2 (Dec 21, 2017): Implemented device open and close methods.\n * 0.3.3 (Dec 26, 2017): Connection from Linux DRBD to windrbd also works.\n * 0.3.4 (Jan 05, 2018): Fixed several blue screens.\n * 0.3.5 (Jan 09, 2018): Fixed additional blue screen when connected.\n * 0.3.6 (Jan 09, 2018): Updated version of DRBD this is based on.\n * 0.3.7 (Jan 11, 2018): Local I/O works again.\n * 0.4.0 (Jan 12, 2018): Removed lots of legacy code.\n * 0.4.1 (Jan 19, 2018): Sync is almost working.\n * 0.4.2 (Jan 22, 2018): Support for I/O to/from backing device with more\n\t\t\t than 32 pages (needed to split requests).\n * 0.4.3 (Jan 26, 2018): Fixed a blue screen.\n * 0.4.4 (Jan 27, 2018): Fixed a blue screen on system shutdown.\n * 0.4.5 (Jan 29, 2018): Fixed a data integrity error on sync\n * 0.4.6 (Feb 06, 2018): supend-io and resume-io should work (quorum not)\n * 0.4.7 (Feb 07, 2018): Fixed a Windows 10 blue screen when accessing the\n\t\t\t windrbd device.\n * 0.4.8 (Feb 15, 2018): Refuse to attach to a backing device containing\n\t\t\t a (known) file system.\n * 0.4.9 (Feb 16, 2018): Fixed a blue screen introduced in last commit.\n * 0.5.0 (Feb 27, 2018): Beta 1\n * 0.5.1 (Mar 14, 2018): Implemented flushing in windrbd device.\n * 0.5.2 (Mar 20, 2018): Auto-hide filesystem on attach (user space changes\n\t\t\t only).\n * 0.5.3 (Mar 28, 2018): Assign drive letter from drbd.conf\n * 0.5.4 (Mar 28, 2018): Fixed blue screen on drbdadm down and no mount point.\n * 0.6.0 (Mar 29, 2018): Beta 2: Usability improvements.\n * 0.6.1 (Apr 17, 2018): Use Mountmanager to create Symlinks.\n * 0.6.2 (Apr 17, 2018): Fixed reference count error on drbdadm down introduced\n                         with last release.\n * 0.6.3 (Apr 24, 2018): Fixed blue screen on writing while connected.\n * 0.6.4 (May 08, 2018): Fixed very slow sync performance problem (and upgraded\n                         to DRBD 9.0.13).\n * 0.6.5 (May 09, 2018): Fixed memleaks introduced with last release.\n * 0.6.6 (May 11, 2018): Upgraded to DRBD 9.0.14, solving broken split brain\n                         handling.\n * 0.6.7 (May 14, 2018): Fixed pachting bootsector. Patch is not propagated to\n\t\t\t peers.\n * 0.7.0 (May 15, 2018): Beta 3: Stability fixes\n * 0.7.1 (May 24, 2018): Notify Windows explorer about new disk drive(s) (user\n\t\t\t space only)\n * 0.7.2 (May 28, 2018): Windows device only exists while primary.\n * 0.7.3 (Jun 15, 2018): Networking fixes\n * 0.7.4 (Jun 19, 2018): Error handling on backing device (with fault injection)\n * 0.8.0 (Jul 06, 2018): Beta 4: First public beta\n * 0.8.1 (Jul 10, 2018): Handling unplugging USB stick should work now.\n * 0.8.2 (Jul 31, 2018): Split WinDRBD requests into 1Meg pieces for DRBD\n * 0.8.3 (Aug 01, 2018): Fixed BSOD requests \u003e 1Meg and backing dev failure.\n * 0.8.4 (Aug 02, 2018): Performance: do not split into 4K requests.\n * 0.8.5 (Aug 15, 2018): Fault injection framework, fixed permissions\n * 0.8.6 (Aug 27, 2018): Kernel interface now based on ioctl() instead of TCP/IP\n * 0.8.7 (Sep 03, 2018): User mode helpers, do not load driver on boot\n * 0.8.8 (Sep 17, 2018): kmalloc() debugger. For driver unload to work someday.\n * 0.8.9 (Sep 27, 2018): Uninstall works (but needs reboot), switched to\n\t\t\t inno-setup for installation.\n * 0.8.10 (Oct 10,2018): Autostarting user mode helper and log server as\n\t\t\t Windows Services.\n * 0.8.11 (Oct 12,2018): Report kernel driver versions over ioctl's\n * 0.8.12 (Oct 17,2018): Upgraded DRBD to 9.0.15\n * 0.8.13 (Oct 30,2018): Fixed memory leak in I/O path\n * 0.8.14 (Nov 02,2018): Upgraded DRBD to 9.0.16\n * 0.8.15 (Nov 13,2018): Sendbuffer limit, fixed BSOD on I/O while connected\n * 0.8.16 (Nov 14,2018): Some last fixes to installer\n * 0.8.17 (Nov 16,2018): Fixed sync stall bug\n * 0.8.18 (Nov 21,2018): Disallow driver unload when there are resources up\n * 0.8.19 (Nov 29,2018): Tech guide\n * 0.9.0 (Dec 03, 2018): Public beta\n * 0.9.1 (Dec 04, 2018): Fixed a buffer overflow in user space utility\n * 0.9.2 (Apr 10, 2019): DRBD 9.0.17, support for n \u003e 2 nodes\n * 0.10.0 (Oct 15, 2019): Use WinDRBD device as system root (\"C:\\\") (without\n\t\t\t  local backing storage and in VMs only).\n * 0.10.1 (Nov 6, 2019): Data devices and Disk devices work again.\n * 0.10.2 (Nov 14,2019): iPXE passes network address to kernel: no need for\n\t\t\t static IP and StartType registry patch for booting.\n * 0.10.3 (Nov 18,2019): Fixed logging (IP address was hardcoded)\n * 0.10.4 (Jan 31,2020): Stability fixes\n * 0.10.5 (Mar 03,2020): Key/Value based boot config\n * 0.10.6 (Apr 1, 2020): Upgraded DRBD to 9.0.22\n * 0.10.7 (May 6, 2020): Online verify, drbdadm status as non-admin and other\n\t\t\t useful mini-features (see WHATSNEW.md).\n * 1.0.0-rc1 (Jul 3, 2020): Stability fixes\n * 1.0.0-rc2 (Jul 30, 2020): Fixed fio BSOD\n * 1.0.0-rc3 (Aug 4, 2020): Fixed BSOD on upgrade\n * 1.0.0-rc4 (Aug 5, 2020): Fixed boot failure introduced with 1.0.0-rc2\n * 1.0.0-rc5 (Sep 14, 2020): Reengineered workqueues, stability fixes.\n * 1.0.0-rc6 (Oct 8, 2020): Fixed workqueues and ko-count mechanism\n * 1.0.0-rc7 (Oct 14, 2020): Upgrade to DRBD 9.0.25\n * 1.0.0-rc8 (Nov 6, 2020): Fixed many lockups, fixed 2TB limit\n * 1.0.0-rc9 (Dec 11, 2020): Optimized SyncTarget, many fixes when becoming\n\t\t\t     secondary and fixed BSOD on disconnect while sync\n * 1.0.0-rc10 (Feb 24, 2021): Optimized secondary writes, fixed wait_event and\n                              completions (they should be non-interruptible)\n * 1.0.0-rc11 (Apr 26, 2021): Upgrade to DRBD 9.0.28, Fixed mod_timer causing\n                              system hang on disconnect\n * 1.0.0-rc12 (May 17, 2021): Fixed 3 stability issues, drbd utils support\n\t\t\t      relocation. Now ran 5 days in disconnect/connect\n\t\t\t      loop without issues.\n * 1.0.0-rc13 (Aug 2, 2021): Upgrade to DRBD 9.0.29, fixed most issues found\n\t\t\t     by driver verifier.\n * 1.0.0-rc14 (Sep 14, 2021): Event log, config key, bundle sed and bash\n * 1.0.0-rc15 (Sep 23, 2021): Installer prompts for install paths.\n * 1.0.0-rc16 (Sep 30, 2021): Fixed a bug that caused volumes with size 1-2 TB not to work properly.\n * 1.0.0-rc17 (Oct 22, 2021): Online resize, no reboot on upgrade/uninstall and\n                              many other improvements (see WHATSNEW.md)\n * 1.0.0-rc18 (Nov 5, 2021): Installer and event log BSOD fixes\n * 1.0.0-rc19 (Jan 12, 2022): Fixed sync BSOD and hard network shutdown BSOD\n * 1.0.0-rc20 (Jan 25, 2022): Upgrade to DRBD 9.0.32, Fixed invalid page chain\n\t\t\t      bug and some memory leaks.\n * 1.0.0-rc21 (Feb 3, 2022): Do not generate a new current UUID while IO is frozen\n * 1.0.0 (Feb 4, 2022): Production ready release.\n * 1.0.1 (Feb 17, 2022): No timeout for user mode helpers, minor JSON fix\n * 1.0.2 (Mar 28, 2022): Do not fill log file when drbdadm status is run periodically.\n * 1.1.0-rc1 (May 20, 2022): Secure boot, fix most HLK test failures, updated cygwin binaries\n * 1.1.0-rc2 (Aug 17, 2022): Some fixes, improve sync source speed\n * 1.1.0-rc3 (Sep 9, 2022): Fixed c-max-rate, negotiating stuckness, existing NTFS data\n * 1.1.0-rc4 (Sep 27, 2022): Quit drbdsetup events2 on driver unload, fixed remove lock BSOD\n * 1.1.0-rc5 (Oct 19, 2022): drbdadm adjust does not detach, drbdsetup hang fix\n * 1.1.0 (Oct 25, 2022): SecureBoot support, many smaller fixes\n * 1.1.1 (Oct 28, 2022): Release for upgrading from 1.1.0 without official signature\n * 1.1.2 (Nov 3, 2022): Fixed a BSOD when REMOVE_DEVICE timed out\n * 1.1.3 (Nov 11, 2022): Show driver unload messages, fix BSOD on unsuccessful driver update\n * 1.1.4-rc1 (Dec 7, 2022): Virtual partition table for existing NTFS data partitions\n * 1.1.4 (Jan 23, 2023): Drive letter in config ignored, fixed a memory leak, virtual partition tables\n * 1.1.5 (Jan 31, 2023): Fixed bug with large disks (\u003e2TB) introduced with 1.1.4\n * 1.1.6 (Feb 14, 2023): Fixed ReFS support, install from Windows Service, updated cygwin binaries\n * 1.1.7 (Jun 27, 2023): Fixed BSOD on low memory, fixed performance bug, poll_hup support for utils\n * 1.1.8 (Nov 21, 2023): backing dev I/O cork/uncork, resize fix, sync stall fix and many others\n * 1.1.9 (Jan 15, 2024): Disk timeout, fix for drbdadm adjust network config BSOD\n * 1.1.10 (Feb 21, 2024): Memory pressure fixes, drbdadm primary hang fix\n * 1.1.11 (Mar 26, 2024): update cygwin DLL 3.4.5 -\u003e 3.4.10\n * 1.1.12 (Apr 15, 2024): several fixes (in DRBD) related to fencing\n * 1.1.13 (Apr 30, 2024): update cygwin DLL 3.4.10 -\u003e 3.5.3\n * 1.1.14 (May 14, 2024): Fix for drbdadm create-md, downgrade cygwin DLL 3.5.3 -\u003e 3.4.10\n * 1.1.15 (May 27, 2024): Kernel stacks locked in memory fixing a rare BSOD\n * 1.1.16 (June 26, 2024): Initialize bios_event also for upper block devices\n * 1.1.17 (July 24, 2024): Disk timeout now handled by WinDRBD (not DRBD)\n * 1.1.18 (July 25, 2024): Cygwin console close patch: drbdadm shouldn't hang on exiting\n * 1.1.19 (August 5, 2024): Disabled backing device I/O corking again\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinbit%2Fwindrbd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinbit%2Fwindrbd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinbit%2Fwindrbd/lists"}