When running the stock kernel that currently ships with CentOS 7 via pv-grub, vsftpd crashes on startup with the following:
[7525208.478694] BUG: Bad page map in process vsftpd pte:8000000000000165 pmd:68d56067
[7525208.478708] page:ffffea0000000000 count:-1 mapcount:-1 mapping: (null) index:0x0
[7525208.478713] page flags: 0x10(dirty)
[7525208.478718] addr:00007f3af349b000 vm_flags:00100071 anon_vma:ffff88007adffb00 mapping: (null) index:7f3af349b
[7525208.478724] CPU: 1 PID: 2575 Comm: vsftpd Not tainted 3.10.0-123.4.2.el7.x86_64 0000001
[7525208.478729] 00007f3af349b000 000000000ec80dfa ffff88006f453c40 ffffffff815e1ebb
[7525208.478735] ffff88006f453c88 ffffffff81167c58 80000048c3054165 00000007f3af349b
[7525208.478740] ffff880068d564d8 ffffea0000000000 00007f3af349b000 00007f3af349c000
[7525208.478746] Call Trace:
[7525208.478756] [<ffffffff815e1ebb>] dump_stack+0x19/0x1b
[7525208.478762] [<ffffffff81167c58>] print_bad_pte+0x1a8/0x240
[7525208.478767] [<ffffffff8116977e>] unmap_page_range+0x76e/0x860
[7525208.478773] [<ffffffff811698f1>] unmap_single_vma+0x81/0xf0
[7525208.478777] [<ffffffff8116a9b9>] unmap_vmas+0x49/0x90
[7525208.478782] [<ffffffff8117366c>] exit_mmap+0xac/0x1a0
[7525208.478789] [<ffffffff8105b187>] mmput+0x67/0xf0
[7525208.478793] [<ffffffff81063dac>] do_exit+0x28c/0xa60
[7525208.478799] [<ffffffff812576bb>] ? file_has_perm+0x6b/0xc0
[7525208.478804] [<ffffffff810645ff>] do_group_exit+0x3f/0xa0
[7525208.478808] [<ffffffff81064674>] SyS_exit_group+0x14/0x20
[7525208.478813] [<ffffffff815f2599>] system_call_fastpath+0x16/0x1b
[7525208.478817] Disabling lock debugging due to kernel taint
[7525208.478958] BUG: Bad rss-counter state mm:ffff88007aa06400 idx:0 val:-1
[7525208.478963] BUG: Bad rss-counter state mm:ffff88007aa06400 idx:1 val:1
Job for vsftpd.service failed. See 'systemctl status vsftpd.service' and 'journalctl -xn' for details.
This is due to a bug in the kernel when running as a guest under Xen.

I have filed a bug against it here:
http://bugs.centos.org/view.php?id=7414When running a linode kernel, vsftpd will run but firewalld does not allow ftp connections to complete and must be disabled.
Until this issue is fixed in the base kernel, install elrepo.repo (
http://wiki.centos.org/AdditionalResources/Repositories), enable elrepo-kernel and yum install kernel-ml (currently 3.15.6-1.el7.elrepo.x86_64). Then add the appropriate lines in /boot/grub/menu.lst
title CentOS 7 ML
root (hd0)
kernel /boot/vmlinuz-3.15.6-1.el7.elrepo.x86_64 root=/dev/xvda ro console=tty0 console=hvc0
initrd /boot/initramfs-3.15.6-1.el7.elrepo.x86_64.img
This allows vsftpd and firewalld to run properly.
